Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Apropos / Subsearch:
optional field

setsid(2)                        System Calls                        setsid(2)

       setsid - create session and set process group ID

       #include <sys/types.h>
       #include <unistd.h>

       pid_t setsid(void);

       The  setsid() function creates a new session, if the calling process is
       not a process group leader. Upon return the calling process will be the
       session leader of this new session, will be the process group leader of
       a new process group, and will have no controlling terminal. The process
       group  ID of the calling process will be set equal to the process ID of
       the calling process. The calling process will be the  only  process  in
       the new process group and the only process in the new session.

       Upon  successful  completion, setsid() returns the value of the process
       group  ID of the calling process. Otherwise it  returns  (pid_t)-1  and
       sets errno to indicate the error.

       The setsid() function will fail if:

       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

       See attributes(5) for descriptions of the following attributes:

       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).   ATTRIBUTE TYPEATTRIBUTE VALUE Interface StabilityStan-
       dard MT-LevelAsync-Signal-Safe

       getsid(2), setpgid(2), setpgrp(2), attributes(5), standards(5)

       A call to setsid() by a process that is a  process  group  leader  will
       fail.  A  process  can  become a process group leader by being the last
       member of a pipeline started by a job control shell.  Thus,  a  process
       that  expects to be part of a pipeline, and that calls setsid(), should
       always first fork; the parent should exit and  the  child  should  call
       setsid().  This will ensure that the calling process will work reliably
       when started by both job control shells and non-job control shells.

SunOS 5.10                        21 Aug 2002                        setsid(2)