setsid(2)
NAME
setsid, setpgrp − create session and set process group ID
SYNOPSIS
#include <unistd.h>
pid_t setsid(void);
pid_t setpgrp(void);
DESCRIPTION
If the calling process is not a process group leader, setsid() or setprgp() creates a new session. The calling process becomes the session leader of this new session, becomes the process group leader of a new process group, and 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.
setprgp() is provided for backward compatibility only.
RETURN VALUE
setprgp() returns the value of the process group ID of the calling process.
Upon successful completion, setsid() returns the value of the new process group ID of the calling process. Otherwise, a value of −1 is returned, and errno is set to indicate the error.
ERRORS
No change occurs if any of the following conditions are encountered. In addition, setsid() fails when any of the following conditions occur:
[EPERM] The calling process is already a process group leader.
[EPERM] The process group ID of a process other than the calling process matches the process ID of the calling process.
AUTHOR
setprgp() and setsid() were developed by HP and AT&T.
SEE ALSO
exec(2), exit(2), fork(2), getpid(2), kill(2), setpgid(2), signal(2), termio(7).
STANDARDS CONFORMANCE
setsid(): AES, XPG3, XPG4, FIPS 151-2, POSIX.1
setpgrp(): SVID2, XPG2
Hewlett-Packard Company — HP-UX Release 9.0: August 1992