Every program that is running is called a process. These processes range
from things like the X Window System to system programs (daemons) that are
started when the computer boots. Every process runs as a particular user.
Processes that are started at boot time usually run as root or nobody.
Processes that you start will run as you. Processes started as other users
will run as those users.
You have control over all the processes that you start. Additionally,
root has control over all processes on the system, including those started
by other users. Processes can be controlled and monitored through
several programs, as well as some shell commands.
Programs started from the command line start up in the foreground. This
allows you to see all the output of the program and interact with it.
However, there are several occasions when you'd like the program to run
without taking up your terminal. This is called running the program
in the background, and there are a few ways to do it.
The first way to background a process is by adding an ampersand to the
command line when you start the program. For example, assume you wanted
to use the command line mp3 player amp to play a directory
full of mp3s, but you needed to do something else on the same terminal. The
following command line would start up amp in the background:
The program will run as normal, and you are returned to a prompt.
The other way to background a process is to do so while it is running. First,
start up a program. While it is running, hit control+z.
This suspends the process. A suspended process is basically paused. It
momentarily stops running, but can be started up again at any time. Once you
have suspended a process, you are returned to a prompt. You can background the
process by typing:
Now, the suspended process is running in the background.