Run a Unix process in the background

In Unix, a background process executes independently of the shell, leaving the terminal free for other work. To run a process in the background, include an & (an ampersand) at the end of the command you use to run the job. Following are some examples:

  • To run the count program, which will display the process identification number of the job, enter:
     count &
  • To check the status of your job, enter:
     jobs
  • To bring a background process to the foreground, enter:
     fg
  • If you have more than one job suspended in the background, enter:
     fg %#

    Replace # with the job number, as shown in the first column of the output of the jobs command.

  • You can kill a background process by entering:
     kill PID

    Replace PID with the process ID of the job. If that fails, enter the following:

     kill -KILL PID
  • To determine a job's PID, enter:
     jobs -l
  • If you are using sh, ksh, bash, or zsh, you may prevent background processes from sending error messages to the terminal. Redirect the output to /dev/null using the following syntax:
     count 2> /dev/null &

At Indiana University, for personal or departmental Linux or Unix systems support, see Get help for Linux or Unix at IU.

This is document afnz in the Knowledge Base.
Last modified on 2023-06-28 11:00:51.