Provided by: manpages-dev_3.01-1_all bug

NAME

       setsid - creates a session and sets the process group ID

SYNOPSIS

       #include <unistd.h>

       pid_t setsid(void);

DESCRIPTION

       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.

RETURN VALUE

       The session ID of the calling process.

ERRORS

       On  error,  -1 is returned, and errno is set.  The only error which can
       happen is EPERM.  It is returned when  the  process  group  ID  of  any
       process  equals  the  PID of the calling process.  Thus, in particular,
       setsid() fails if the  calling  process  is  already  a  process  group
       leader.

CONFORMING TO

       SVr4, POSIX.1-2001.

NOTES

       A  child  created  via  fork(2)  inherits its parent’s session ID.  The
       session ID is preserved across an execve(2).

       A process group leader is a process with process group ID equal to  its
       PID.   In  order  to  be  sure  that setsid() will succeed, fork(2) and
       _exit(2), and have the child do setsid().

SEE ALSO

       getsid(2), setpgid(2), setpgrp(2), tcgetsid(3), credentials(7)

COLOPHON

       This page is part of release 3.01 of the Linux  man-pages  project.   A
       description  of  the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.