The other day I was sitting in on a presentation by a co-worker. He was running a job that usually takes a while and and used the bg and fg commands. I was familiar with these commands but have not used them in a while.
Needless to say if you need a refresher or just learning this is how they work:
In this example I am using a simple while loop to play around with this.
#!/usr/bin/sh NUM=1 while [ ${NUM} -gt 0 ] do echo "Just a Job" done
Execute the script.
# ./num.sh > num.out
Press control-z to suspend the job.
[1] + Stopped ./num.sh > num.out
Your prompt will come back .. and execute the jobs command.
As you will see the job is stopped.
# # jobs [1] + Stopped ./num.sh > num.out #
Now use the bg command to send the job to the background. If you execute the jobs command you will see the job us no longer in a “Stopped” state but is now running in the background. NOTE: jobs -l will show you the PID.
# bg [1] ./num.sh > num.out& # # jobs [1] + Running ./num.sh > num.out # # jobs -l [1] + 22495 Running ./num.sh > num.out
To kill job # 1 simply kill that job.
# kill %1
Or you can bring it back to the foreground by executing the fg command and wait for it to finish or control-c to kill it.
# fg ./num.sh > num.out