How to Put a "Running Job" in the Background.

     You're running a job at the terminal prompt, and it's taking
     a very long time. You want to put the job in the backgroud.

       "CTL - z" Temporarily suspends the job
       $ jobs     This will list all the jobs
       $ bg %jobnumber (bg %1)  To run in the background
       $ fg %jobnumber          To bring back in the foreground

     Need to kill all jobs -- say you're using several suspended
     emacs sessions and you just want everything to exit.

       $ kill -9  `jobs -p`

     The "jobs -p" gives the process number of each job, and the
     kill -9 kills everything. Yes, sometimes "kill -9" is excessive
     and you should issue a "kill -15" that allows jobs to clean-up.
     However, for exacs session, I prefer "kill -9" and haven't had
     a problem.

     Sometimes you need to list the process id along with job
     information. For instance, here's process id with the listing.

       $ jobs -l

     Note you can also renice a job, or give it lower priority.

       $ nice -n +15 find . -ctime 2 -type f  -exec ls {} \; > last48hours
        ^z
       $  bg

     So above that was a ctl-z to suppend. Then, bg to run it in
     the background. Now, if you want to change the priority lower
     you just renice it, once you know the process id.

       $ jobs -pl
   [1]+ 29388 Running                 nice -n +15 find . -ctime 2
-exec ls -l {} \; >mout &

       $ renice +30 -p 29388
        29388: old priority 15, new priority 19

      19 was the lowest priority for this job. You cannot increase
      the priority unless you are root.





Reply via email to