When you execute a unix shell-script or command that takes a long time, you can run it as a background job.
In this article, let us review how to execute a job in the background, bring a job to the foreground, view all background jobs, and kill a background job.
Executing a background job
Appending an ampersand ( & ) to the command runs the job in the background.
For example, when you execute a find command that might take a lot time to execute, you can put it in the background as shown below.
- yum update &
Sending the current foreground job to the background using CTRL-Z and bg command
You can send an already running foreground job to background as explained below:
- Press ‘CTRL+Z’ which will suspend the current foreground job.
- Execute bg to make that command to execute in background.
- CTRL+Z
- bg
View all the background jobs using jobs command
You can list out the background jobs with the command jobs
# jobs
Taking a job from the background to the foreground using fg command
You can bring a background job to the foreground using fg command. When executed without arguments, it will take the most recent background job to the foreground
# fg
If you have multiple background ground jobs, and would want to bring a certain job to the foreground, execute jobs command which will show the job id and command.
In the following example, fg %1 will bring the job#1 (i.e download-file.sh) to the foreground.
#fg %1
Kill a specific background job using kill %
If you want to kill a specific background job use, kill %job-number. For example, to kill the job 2 use
# kill #1