SETSID(2) | System Calls Manual | SETSID(2)

# NAME

`setsid` — create session and set process group ID

# SYNOPSIS

`#include <unistd.h>`

pid_t
`setsid`(void);

# DESCRIPTION

The `setsid`() function creates a new session. The calling process is the session leader of the new session, is the process group leader of a new process group and has no controlling terminal. The calling process is the only process in either the session or the process group.

Upon successful completion, the `setsid`() function returns the value of the process group ID of the new process group, which is the same as the process ID of the calling process.

# ERRORS

If an error occurs, `setsid`() returns -1 and the global variable errno is set to indicate the error, as follows:

[`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.

# SEE ALSO

getsid(2), setpgid(2), tcgetpgrp(3), tcsetpgrp(3)

# STANDARDS

The `setsid`() function is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification.

January 12, 2023 | Debian