<html lang="en">
<head>
<title>Job Control - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="prev" href="Processes.html#Processes" title="Processes">
<link rel="next" href="Name-Service-Switch.html#Name-Service-Switch" title="Name Service Switch">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Job-Control"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Name-Service-Switch.html#Name-Service-Switch">Name Service Switch</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Processes.html#Processes">Processes</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
<hr>
</div>

<!-- %MENU% All about process groups and sessions -->
<h2 class="chapter">27 Job Control</h2>

<p><a name="index-process-groups-3196"></a><a name="index-job-control-3197"></a><a name="index-job-3198"></a><a name="index-session-3199"></a><dfn>Job control</dfn> refers to the protocol for allowing a user to move
between multiple <dfn>process groups</dfn> (or <dfn>jobs</dfn>) within a single
<dfn>login session</dfn>.  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.

   <p>You need to be familiar with concepts relating to process creation
(see <a href="Process-Creation-Concepts.html#Process-Creation-Concepts">Process Creation Concepts</a>) and signal handling (see <a href="Signal-Handling.html#Signal-Handling">Signal Handling</a>) in order to understand this material presented in this
chapter.

<ul class="menu">
<li><a accesskey="1" href="Concepts-of-Job-Control.html#Concepts-of-Job-Control">Concepts of Job Control</a>:      Jobs can be controlled by a shell. 
<li><a accesskey="2" href="Job-Control-is-Optional.html#Job-Control-is-Optional">Job Control is Optional</a>:      Not all POSIX systems support job control. 
<li><a accesskey="3" href="Controlling-Terminal.html#Controlling-Terminal">Controlling Terminal</a>:         How a process gets its controlling terminal. 
<li><a accesskey="4" href="Access-to-the-Terminal.html#Access-to-the-Terminal">Access to the Terminal</a>:       How processes share the controlling terminal. 
<li><a accesskey="5" href="Orphaned-Process-Groups.html#Orphaned-Process-Groups">Orphaned Process Groups</a>:      Jobs left after the user logs out. 
<li><a accesskey="6" href="Implementing-a-Shell.html#Implementing-a-Shell">Implementing a Shell</a>:         What a shell must do to implement job control. 
<li><a accesskey="7" href="Functions-for-Job-Control.html#Functions-for-Job-Control">Functions for Job Control</a>:    Functions to control process groups. 
</ul>

   </body></html>

