the virtual file system found on many UNIX flavors. Through the /proc file
system, you can communicate directly with the kernel to get a deep view of
what is currently happening. Developers tend to use the /proc file system as
a way of extracting information from the kernel and for their programs to
manipulate that information into human-readable formats. A full discussion of
the /proc file system is beyond the scope of this book. To get a better idea
of what it contains, you can take a look at http://en.tldp.org/LDP/Linux-
Filesystem-Hierarchy/html/proc.html, which provides an excellent and in-
depth guide.
Processes can also be controlled at the command line, which is important
because you might sometimes have only a command-line interface. Whenever
an application or a command is launched, either from the command line or a
clicked icon, the process that comes from the kernel is assigned an
identification number called a process ID (PID). This number is shown in the
shell if the program is launched via the command line:
Click here to view code image
matthew@seymour:~$ gedit &
[1] 9649
In this example, gedit has been launched in the background, and the
(bash) shell reported a shell job number ([1] in this case). A job number or
job control is a shell-specific feature that allows a different form of process
control, such as sending or suspending programs to the background and
retrieving background jobs to the foreground. (See your shell’s man pages for
more information if you are not using bash.)
The second number displayed ( 9649 in this example) represents the PID.
You can get a quick list of your processes by using the ps command, like
this:
Click here to view code image
matthew@seymour:~$ ps
PID TTY TIME CMD
9595 pts/0 00:00:00 bash
9656 pts/0 00:00:00 gedit
9657 pts/0 00:00:00 ps
As you can see, the output includes the PID along with other information,
such as the name of the running program. As with any other UNIX command,
many options are available; the proc man page has a full list. One useful