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 (The Portable Operating System Interface)). If you need to be portable to old systems, you can
use the _POSIX_JOB_CONTROL
macro to test at compile-time
whether the system supports job control. See Overall System Options.