summaryrefslogtreecommitdiffstats
path: root/man2/setpgid.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/setpgid.2')
-rw-r--r--man2/setpgid.2329
1 files changed, 0 insertions, 329 deletions
diff --git a/man2/setpgid.2 b/man2/setpgid.2
deleted file mode 100644
index b3983c4..0000000
--- a/man2/setpgid.2
+++ /dev/null
@@ -1,329 +0,0 @@
-.\" Copyright (c) 1983, 1991 Regents of the University of California.
-.\" and Copyright (C) 2007, Michael Kerrisk <mtk.manpages@gmail.com>
-.\" All rights reserved.
-.\"
-.\" SPDX-License-Identifier: BSD-4-Clause-UC
-.\"
-.\" @(#)getpgrp.2 6.4 (Berkeley) 3/10/91
-.\"
-.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
-.\" Modified 1995-04-15 by Michael Chastain <mec@shell.portal.com>:
-.\" Added 'getpgid'.
-.\" Modified 1996-07-21 by Andries Brouwer <aeb@cwi.nl>
-.\" Modified 1996-11-06 by Eric S. Raymond <esr@thyrsus.com>
-.\" Modified 1999-09-02 by Michael Haardt <michael@moria.de>
-.\" Modified 2002-01-18 by Michael Kerrisk <mtk.manpages@gmail.com>
-.\" Modified 2003-01-20 by Andries Brouwer <aeb@cwi.nl>
-.\" 2007-07-25, mtk, fairly substantial rewrites and rearrangements
-.\" of text.
-.\"
-.TH setpgid 2 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-setpgid, getpgid, setpgrp, getpgrp \- set/get process group
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.B #include <unistd.h>
-.P
-.BI "int setpgid(pid_t " pid ", pid_t " pgid );
-.BI "pid_t getpgid(pid_t " pid );
-.P
-.BR "pid_t getpgrp(void);" " /* POSIX.1 version */"
-.BI "[[deprecated]] pid_t getpgrp(pid_t " pid ");\fR /* BSD version */"
-.P
-.BR "int setpgrp(void);" " /* System V version */"
-.BI "[[deprecated]] int setpgrp(pid_t " pid ", pid_t " pgid ");\fR /* BSD version */"
-.fi
-.P
-.RS -4
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.RE
-.P
-.BR getpgid ():
-.nf
- _XOPEN_SOURCE >= 500
-.\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
- || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
-.fi
-.P
-.BR setpgrp "() (POSIX.1):"
-.nf
- _XOPEN_SOURCE >= 500
-.\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
- || /* Since glibc 2.19: */ _DEFAULT_SOURCE
- || /* glibc <= 2.19: */ _SVID_SOURCE
-.fi
-.P
-.BR setpgrp "() (BSD),"
-.BR getpgrp "() (BSD):"
-.nf
- [These are available only before glibc 2.19]
- _BSD_SOURCE &&
- ! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE
- || _GNU_SOURCE || _SVID_SOURCE)
-.fi
-.SH DESCRIPTION
-All of these interfaces are available on Linux,
-and are used for getting and setting the
-process group ID (PGID) of a process.
-The preferred, POSIX.1-specified ways of doing this are:
-.BR getpgrp (void),
-for retrieving the calling process's PGID; and
-.BR setpgid (),
-for setting a process's PGID.
-.P
-.BR setpgid ()
-sets the PGID of the process specified by
-.I pid
-to
-.IR pgid .
-If
-.I pid
-is zero, then the process ID of the calling process is used.
-If
-.I pgid
-is zero, then the PGID of the process specified by
-.I pid
-is made the same as its process ID.
-If
-.BR setpgid ()
-is used to move a process from one process
-group to another (as is done by some shells when creating pipelines),
-both process groups must be part of the same session (see
-.BR setsid (2)
-and
-.BR credentials (7)).
-In this case,
-the \fIpgid\fP specifies an existing process group to be joined and the
-session ID of that group must match the session ID of the joining process.
-.P
-The POSIX.1 version of
-.BR getpgrp (),
-which takes no arguments,
-returns the PGID of the calling process.
-.P
-.BR getpgid ()
-returns the PGID of the process specified by
-.IR pid .
-If
-.I pid
-is zero, the process ID of the calling process is used.
-(Retrieving the PGID of a process other than the caller is rarely
-necessary, and the POSIX.1
-.BR getpgrp ()
-is preferred for that task.)
-.P
-The System\ V-style
-.BR setpgrp (),
-which takes no arguments, is equivalent to
-.IR "setpgid(0,\ 0)" .
-.P
-The BSD-specific
-.BR setpgrp ()
-call, which takes arguments
-.I pid
-and
-.IR pgid ,
-is a wrapper function that calls
-.P
-.in +4n
-.EX
-setpgid(pid, pgid)
-.EE
-.in
-.P
-.\" The true BSD setpgrp() system call differs in allowing the PGID
-.\" to be set to arbitrary values, rather than being restricted to
-.\" PGIDs in the same session.
-Since glibc 2.19, the BSD-specific
-.BR setpgrp ()
-function is no longer exposed by
-.IR <unistd.h> ;
-calls should be replaced with the
-.BR setpgid ()
-call shown above.
-.P
-The BSD-specific
-.BR getpgrp ()
-call, which takes a single
-.I pid
-argument, is a wrapper function that calls
-.P
-.in +4n
-.EX
-getpgid(pid)
-.EE
-.in
-.P
-Since glibc 2.19, the BSD-specific
-.BR getpgrp ()
-function is no longer exposed by
-.IR <unistd.h> ;
-calls should be replaced with calls to the POSIX.1
-.BR getpgrp ()
-which takes no arguments (if the intent is to obtain the caller's PGID),
-or with the
-.BR getpgid ()
-call shown above.
-.SH RETURN VALUE
-On success,
-.BR setpgid ()
-and
-.BR setpgrp ()
-return zero.
-On error, \-1 is returned, and
-.I errno
-is set to indicate the error.
-.P
-The POSIX.1
-.BR getpgrp ()
-always returns the PGID of the caller.
-.P
-.BR getpgid (),
-and the BSD-specific
-.BR getpgrp ()
-return a process group on success.
-On error, \-1 is returned, and
-.I errno
-is set to indicate the error.
-.SH ERRORS
-.TP
-.B EACCES
-An attempt was made to change the process group ID
-of one of the children of the calling process and the child had
-already performed an
-.BR execve (2)
-.RB ( setpgid (),
-.BR setpgrp ()).
-.TP
-.B EINVAL
-.I pgid
-is less than 0
-.RB ( setpgid (),
-.BR setpgrp ()).
-.TP
-.B EPERM
-An attempt was made to move a process into a process group in a
-different session, or to change the process
-group ID of one of the children of the calling process and the
-child was in a different session, or to change the process group ID of
-a session leader
-.RB ( setpgid (),
-.BR setpgrp ()).
-.TP
-.B EPERM
-The target process group does not exist.
-.RB ( setpgid (),
-.BR setpgrp ()).
-.TP
-.B ESRCH
-For
-.BR getpgid ():
-.I pid
-does not match any process.
-For
-.BR setpgid ():
-.I pid
-is not the calling process and not a child of the calling process.
-.SH STANDARDS
-.TP
-.BR getpgid ()
-.TQ
-.BR setpgid ()
-.TQ
-.BR getpgrp "() (no args)"
-.TQ
-.BR setpgrp "() (no args)"
-POSIX.1-2008 (but see HISTORY).
-.TP
-.BR setpgrp "() (2 args)"
-.TQ
-.BR getpgrp "() (1 arg)"
-None.
-.SH HISTORY
-.TP
-.BR getpgid ()
-.TQ
-.BR setpgid ()
-.TQ
-.BR getpgrp "() (no args)"
-POSIX.1-2001.
-.TP
-.BR setpgrp "() (no args)"
-POSIX.1-2001.
-POSIX.1-2008 marks it as obsolete.
-.TP
-.BR setpgrp "() (2 args)"
-.TQ
-.BR getpgrp "() (1 arg)"
-4.2BSD.
-.SH NOTES
-A child created via
-.BR fork (2)
-inherits its parent's process group ID.
-The PGID is preserved across an
-.BR execve (2).
-.P
-Each process group is a member of a session and each process is a
-member of the session of which its process group is a member.
-(See
-.BR credentials (7).)
-.P
-A session can have a controlling terminal.
-At any time, one (and only one) of the process groups
-in the session can be the foreground process group
-for the terminal;
-the remaining process groups are in the background.
-If a signal is generated from the terminal (e.g., typing the
-interrupt key to generate
-.BR SIGINT ),
-that signal is sent to the foreground process group.
-(See
-.BR termios (3)
-for a description of the characters that generate signals.)
-Only the foreground process group may
-.BR read (2)
-from the terminal;
-if a background process group tries to
-.BR read (2)
-from the terminal, then the group is sent a
-.B SIGTTIN
-signal, which suspends it.
-The
-.BR tcgetpgrp (3)
-and
-.BR tcsetpgrp (3)
-functions are used to get/set the foreground
-process group of the controlling terminal.
-.P
-The
-.BR setpgid ()
-and
-.BR getpgrp ()
-calls are used by programs such as
-.BR bash (1)
-to create process groups in order to implement shell job control.
-.P
-If the termination of a process causes a process group to become orphaned,
-and if any member of the newly orphaned process group is stopped, then a
-.B SIGHUP
-signal followed by a
-.B SIGCONT
-signal will be sent to each process
-in the newly orphaned process group.
-.\" exit.3 refers to the following text:
-An orphaned process group is one in which the parent of
-every member of process group is either itself also a member
-of the process group or is a member of a process group
-in a different session (see also
-.BR credentials (7)).
-.SH SEE ALSO
-.BR getuid (2),
-.BR setsid (2),
-.BR tcgetpgrp (3),
-.BR tcsetpgrp (3),
-.BR termios (3),
-.BR credentials (7)