mirror of https://github.com/mkerrisk/man-pages
90 lines
2.7 KiB
Groff
90 lines
2.7 KiB
Groff
.\" Copyright Michael Haardt (michael@cantor.informatik.rwth-aachen.de)
|
|
.\" Sat Aug 27 20:43:50 MET DST 1994
|
|
.\"
|
|
.\" This is free documentation; you can redistribute it and/or
|
|
.\" modify it under the terms of the GNU General Public License as
|
|
.\" published by the Free Software Foundation; either version 2 of
|
|
.\" the License, or (at your option) any later version.
|
|
.\"
|
|
.\" The GNU General Public License's references to "object code"
|
|
.\" and "executables" are to be interpreted as the output of any
|
|
.\" document formatting or typesetting system, including
|
|
.\" intermediate and printed output.
|
|
.\"
|
|
.\" This manual is distributed in the hope that it will be useful,
|
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
.\" GNU General Public License for more details.
|
|
.\"
|
|
.\" You should have received a copy of the GNU General Public
|
|
.\" License along with this manual; if not, write to the Free
|
|
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
|
|
.\" USA.
|
|
.\"
|
|
.\" Modified Sun Sep 11 19:19:05 1994 <faith@cs.unc.edu>
|
|
.\" Modified Mon Mar 25 10:19:00 1996 <aeb@cwi.nl> (merged a few
|
|
.\" tiny changes from a man page by Charles Livingston).
|
|
.\" Modified Sun Jul 21 14:45:46 1996 <aeb@cwi.nl>
|
|
.\"
|
|
.TH SETSID 2 2008-12-03 "Linux" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
setsid \- creates a session and sets the process group ID
|
|
.SH SYNOPSIS
|
|
.ad l
|
|
.B #include <unistd.h>
|
|
.sp
|
|
.B pid_t setsid(void);
|
|
.br
|
|
.ad b
|
|
.SH DESCRIPTION
|
|
.BR setsid ()
|
|
creates a new session if the calling process is not a
|
|
process group leader.
|
|
The calling process is the leader of the new
|
|
session, the process group leader of the new process group, and has no
|
|
controlling tty.
|
|
The process group ID and session ID of the calling
|
|
process are set to the PID of the calling process.
|
|
The calling process will be the only process in
|
|
this new process group and in this new session.
|
|
.SH "RETURN VALUE"
|
|
On success, the (new) session ID of the calling process is returned.
|
|
On error,
|
|
.I "(pid_t)\ \-1"
|
|
is returned, and
|
|
.I errno
|
|
is set to indicate the error.
|
|
.SH ERRORS
|
|
.TP
|
|
.BR EPERM .
|
|
The process group ID of any process
|
|
equals the PID of the calling process.
|
|
Thus, in particular,
|
|
.BR setsid ()
|
|
fails if the calling process is already a process group leader.
|
|
.SH "CONFORMING TO"
|
|
SVr4, POSIX.1-2001.
|
|
.SH NOTES
|
|
A child created via
|
|
.BR fork (2)
|
|
inherits its parent's session ID.
|
|
The session ID is preserved across an
|
|
.BR execve (2).
|
|
|
|
A process group leader is a process with process group ID equal
|
|
to its PID.
|
|
In order to be sure that
|
|
.BR setsid ()
|
|
will succeed,
|
|
.BR fork (2)
|
|
and
|
|
.BR _exit (2),
|
|
and have the child do
|
|
.BR setsid ().
|
|
.SH "SEE ALSO"
|
|
.BR getsid (2),
|
|
.BR setpgid (2),
|
|
.BR setpgrp (2),
|
|
.BR tcgetsid (3),
|
|
.BR credentials (7)
|