[manual] Job control is no longer optional.
Job control was made mandatory in POSIX.1-2001: compare <http://pubs.opengroup.org/onlinepubs/7990989775/xsh/unistd.h.html> with <http://pubs.opengroup.org/onlinepubs/009695399/basedefs/unistd.h.html>. Seventeen years later, we need not devote an entire manual @node to warning people that this was once an optional POSIX feature. * manual/job.texi (Job Control is Optional): Remove node, as job control has not been optional in quite some time. (Job Control): Mention briefly that systems older than POSIX.1-2001 might not support job control. * manual/conf.texi (_POSIX_JOB_CONTROL): Will always be defined on systems conforming to POSIX.1-2001.
This commit is contained in:
parent
c5288d378a
commit
26756e5756
@ -1,3 +1,12 @@
|
||||
2018-10-17 Zack Weinberg <zackw@panix.com>
|
||||
|
||||
* manual/job.texi (Job Control is Optional): Remove node, as
|
||||
job control has not been optional in quite some time.
|
||||
(Job Control): Mention briefly that systems older than
|
||||
POSIX.1-2001 might not support job control.
|
||||
* manual/conf.texi (_POSIX_JOB_CONTROL): Will always be
|
||||
defined on systems conforming to POSIX.1-2001.
|
||||
|
||||
2018-10-17 Arjun Shankar <arjun@redhat.com>
|
||||
|
||||
[BZ #22062]
|
||||
|
@ -156,6 +156,8 @@ supported; use @code{sysconf} to find out. @xref{Sysconf}.
|
||||
If this symbol is defined, it indicates that the system supports job
|
||||
control. Otherwise, the implementation behaves as if all processes
|
||||
within a session belong to a single process group. @xref{Job Control}.
|
||||
Systems conforming to the 2001 revision of POSIX, or newer, will
|
||||
always define this symbol.
|
||||
@end deftypevr
|
||||
|
||||
@deftypevr Macro int _POSIX_SAVED_IDS
|
||||
|
@ -19,9 +19,15 @@ You need to be familiar with concepts relating to process creation
|
||||
Handling}) in order to understand this material presented in this
|
||||
chapter.
|
||||
|
||||
@vindex _POSIX_JOB_CONTROL
|
||||
Some old systems do not support job control, but @gnusystems{} always
|
||||
have, and it is a required feature in the 2001 revision of POSIX.1
|
||||
(@pxref{POSIX}). If you need to be portable to old systems, you can
|
||||
use the @code{_POSIX_JOB_CONTROL} macro to test at compile-time
|
||||
whether the system supports job control. @xref{System Options}.
|
||||
|
||||
@menu
|
||||
* Concepts of Job Control:: Jobs can be controlled by a shell.
|
||||
* Job Control is Optional:: Not all POSIX systems support job control.
|
||||
* 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.
|
||||
@ -29,7 +35,7 @@ chapter.
|
||||
* Functions for Job Control:: Functions to control process groups.
|
||||
@end menu
|
||||
|
||||
@node Concepts of Job Control, Job Control is Optional, , Job Control
|
||||
@node Concepts of Job Control
|
||||
@section Concepts of Job Control
|
||||
|
||||
@cindex shell
|
||||
@ -102,30 +108,7 @@ jobs between foreground and background.
|
||||
@xref{Access to the Terminal}, for more information about I/O to the
|
||||
controlling terminal.
|
||||
|
||||
@node Job Control is Optional, Controlling Terminal, Concepts of Job Control , Job Control
|
||||
@section Job Control is Optional
|
||||
@cindex job control is optional
|
||||
|
||||
Not all operating systems support job control. @gnusystems{} do
|
||||
support job control, but if you are using @theglibc{} on some other
|
||||
system, that system may not support job control itself.
|
||||
|
||||
You can use the @code{_POSIX_JOB_CONTROL} macro to test at compile-time
|
||||
whether the system supports job control. @xref{System Options}.
|
||||
|
||||
If job control is not supported, then there can be only one process
|
||||
group per session, which behaves as if it were always in the foreground.
|
||||
The functions for creating additional process groups simply fail with
|
||||
the error code @code{ENOSYS}.
|
||||
|
||||
The macros naming the various job control signals (@pxref{Job Control
|
||||
Signals}) are defined even if job control is not supported. However,
|
||||
the system never generates these signals, and attempts to send a job
|
||||
control signal or examine or specify their actions report errors or do
|
||||
nothing.
|
||||
|
||||
|
||||
@node Controlling Terminal, Access to the Terminal, Job Control is Optional, Job Control
|
||||
@node Controlling Terminal
|
||||
@section Controlling Terminal of a Process
|
||||
|
||||
One of the attributes of a process is its controlling terminal. Child
|
||||
@ -1166,9 +1149,6 @@ The @code{setpgid} function puts the process @var{pid} into the process
|
||||
group @var{pgid}. As a special case, either @var{pid} or @var{pgid} can
|
||||
be zero to indicate the process ID of the calling process.
|
||||
|
||||
This function fails on a system that does not support job control.
|
||||
@xref{Job Control is Optional}, for more information.
|
||||
|
||||
If the operation is successful, @code{setpgid} returns zero. Otherwise
|
||||
it returns @code{-1}. The following @code{errno} error conditions are
|
||||
defined for this function:
|
||||
|
Loading…
x
Reference in New Issue
Block a user