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  pro­
       cess  group  ID  and session ID of the calling process are
       set to the PID of the calling process.  The  calling  pro­
       cess  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 will be returned.  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.


NOTES

       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 and exit, and have the child do setsid().


CONFORMING TO

       POSIX, SVr4.


SEE ALSO

       setpgid(2), setpgrp(2)