Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
setsid(2)			 System	Calls			     setsid(2)

NAME
       setsid -	create session and set process group ID

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

       pid_t setsid(void);

DESCRIPTION
       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  ses-
       sion.

RETURN VALUES
       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.

ERRORS
       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 process.

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

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |Async-Signal-Safe		   |
       +-----------------------------+-----------------------------+

SEE ALSO
       getsid(2), setpgid(2), setpgrp(2), attributes(5)

WARNINGS
       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.9			  28 Dec 1996			     setsid(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | WARNINGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=setsid&sektion=2&manpath=SunOS+5.9>

home | help