Job control refers to the protocol for allowing a user to move between multiple process groups (or jobs) within a single login session. The job control facilities are set up so that appropriate behavior for most programs happens automatically and they need not do anything special about job control. So you can probably ignore the material in this chapter unless you are writing a shell or login program.
You need to be familiar with concepts relating to process creation (see Process Creation Concepts) and signal handling (see Signal Handling) in order to understand this material presented in this chapter.
Some old systems do not support job control, but GNU systems always
have, and it is a required feature in the 2001 revision of POSIX.1
(see POSIX). If you need to be portable to old systems, you can
_POSIX_JOB_CONTROL macro to test at compile-time
whether the system supports job control. See System Options.
|• Concepts of Job Control||Jobs can be controlled by a shell.|
|• Controlling Terminal||How a process gets its controlling terminal.|
|• Access to the Terminal||How processes share the controlling terminal.|
|• Orphaned Process Groups||Jobs left after the user logs out.|
|• Implementing a Shell||What a shell must do to implement job control.|
|• Functions for Job Control||Functions to control process groups.|