mirror of https://github.com/mkerrisk/man-pages
88 lines
3.3 KiB
Plaintext
88 lines
3.3 KiB
Plaintext
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
|
.TH "SETSID" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
|
.\" setsid
|
|
.SH NAME
|
|
setsid \- create session and set process group ID
|
|
.SH SYNOPSIS
|
|
.LP
|
|
\fB#include <unistd.h>
|
|
.br
|
|
.sp
|
|
pid_t setsid(void);
|
|
.br
|
|
\fP
|
|
.SH DESCRIPTION
|
|
.LP
|
|
The \fIsetsid\fP() function shall create a new session, if the calling
|
|
process is not a process group leader. Upon return the
|
|
calling process shall be the session leader of this new session, shall
|
|
be the process group leader of a new process group, and
|
|
shall have no controlling terminal. The process group ID of the calling
|
|
process shall be set equal to the process ID of the calling
|
|
process. The calling process shall be the only process in the new
|
|
process group and the only process in the new session.
|
|
.SH RETURN VALUE
|
|
.LP
|
|
Upon successful completion, \fIsetsid\fP() shall return the value
|
|
of the new process group ID of the calling process.
|
|
Otherwise, it shall return (\fBpid_t\fP)-1 and set \fIerrno\fP to
|
|
indicate the error.
|
|
.SH ERRORS
|
|
.LP
|
|
The \fIsetsid\fP() function shall fail if:
|
|
.TP 7
|
|
.B EPERM
|
|
The calling process is already a process group leader, or the process
|
|
group ID of a process other than the calling process
|
|
matches the process ID of the calling process.
|
|
.sp
|
|
.LP
|
|
\fIThe following sections are informative.\fP
|
|
.SH EXAMPLES
|
|
.LP
|
|
None.
|
|
.SH APPLICATION USAGE
|
|
.LP
|
|
None.
|
|
.SH RATIONALE
|
|
.LP
|
|
The \fIsetsid\fP() function is similar to the \fIsetpgrp\fP() function
|
|
of System V.
|
|
System V, without job control, groups processes into process groups
|
|
and creates new process groups via \fIsetpgrp\fP(); only one process
|
|
group may be part of a login session.
|
|
.LP
|
|
Job control allows multiple process groups within a login session.
|
|
In order to limit job control actions so that they can only
|
|
affect processes in the same login session, this volume of IEEE\ Std\ 1003.1-2001
|
|
adds the concept of a session that is
|
|
created via \fIsetsid\fP(). The \fIsetsid\fP() function also creates
|
|
the initial process group contained in the session.
|
|
Additional process groups can be created via the \fIsetpgid\fP() function.
|
|
A System V
|
|
process group would correspond to a POSIX System Interfaces session
|
|
containing a single POSIX process group. Note that this
|
|
function requires that the calling process not be a process group
|
|
leader. The usual way to ensure this is true is to create a new
|
|
process with \fIfork\fP() and have it call \fIsetsid\fP(). The \fIfork\fP()
|
|
function guarantees that the process ID of the new process does not
|
|
match any existing
|
|
process group ID.
|
|
.SH FUTURE DIRECTIONS
|
|
.LP
|
|
None.
|
|
.SH SEE ALSO
|
|
.LP
|
|
\fIgetsid\fP() , \fIsetpgid\fP() , \fIsetpgrp\fP() , the Base Definitions
|
|
volume of IEEE\ Std\ 1003.1-2001, \fI<sys/types.h>\fP, \fI<unistd.h>\fP
|
|
.SH COPYRIGHT
|
|
Portions of this text are reprinted and reproduced in electronic form
|
|
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
|
|
-- Portable Operating System Interface (POSIX), The Open Group Base
|
|
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
|
|
Electrical and Electronics Engineers, Inc and The Open Group. In the
|
|
event of any discrepancy between this version and the original IEEE and
|
|
The Open Group Standard, the original IEEE and The Open Group Standard
|
|
is the referee document. The original Standard can be obtained online at
|
|
http://www.opengroup.org/unix/online.html .
|