NAME
setsid — create session and set process group ID
SYNOPSIS
#include <unistd.h>
pid_t setsid(void);
DESCRIPTION
If the calling process is not a process group leader,
setsid()
creates a new session.
The calling process becomes the session leader of this new session,
it becomes the process group leader of a new process group,
and it has no controlling terminal.
The process group
ID of the calling process is set equal to the process
ID of the calling process.
The calling process is the only process in the new process group
and the only process in the new session.
Security Restrictions
Some or all of the actions associated with this system call may require
privileges.
See
privileges(5)
for more information.
RETURN VALUE
Upon successful completion,
setsid()
returns the value of the new process group
ID of the calling process.
Otherwise, it returns a value of
-1,
and sets
errno
to indicate the error.
ERRORS
If
setsid()
fails, no changes occur and
errno
(see
errno(2))
is set to one of the following values:
- 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.
- EPERM
The calling process does not have sufficient privileges.
AUTHOR
setsid()
was developed by HP and AT&T.
SEE ALSO
exec(2),
exit(2),
fork(2),
getpid(2),
kill(2),
setpgid(2),
setpgrp(2),
setpgrp3(2),
signal(2),
privileges(5),
termio(7).
STANDARDS CONFORMANCE
setsid(): AES, SVID3, XPG3, XPG4, XPG4.2, FIPS 151-2, POSIX.1