How do I 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 At IU, how do I get support for Linux or Unix?

This is document afnz in the Knowledge Base.
Last modified on 2017-05-16 11:52:58.

Contact us

For help or to comment, email the UITS Support Center.