Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ setsid(2) — Motorola System V 88k Release 4 Version 4.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

exec(2)

exit(2)

fork(2)

getpid(2)

getpgid(2)

getsid(2)

setpgid(2)

signal(2)

sigsend(2)

setsid(2)  —  SYSTEM CALLS

NAME

setsid − set session ID

SYNOPSIS

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

pid_t setsid(void);

DESCRIPTION

If the calling process is not already a process group leader, setsid sets the ­process group ID and session ID of the calling process to the process ID of the calling process, and releases the process’s controlling terminal. 

setsid will fail and return an error if the following is true:

EPERM The calling process is already a process group leader, or there are processes other than the calling process whose process group ID is equal to the process ID of the calling process. 

SEE ALSO

intro(2), exec(2), exit(2), fork(2), getpid(2), getpgid(2), getsid(2), setpgid(2), setpgrp, signal(2), sigsend(2)

NOTES

If the calling process is the last member of a pipeline started by a job control shell, the shell may make the calling process a process group leader.  The other processes of the pipeline become members of that process group.  In this case, the call to setsid will fail.  For this reason, a process that calls setsid and expects to be part of a pipeline should always first fork; the parent should exit and the child should call setsid, thereby insuring that the process will work reliably when started by both job control shells and non-job control shells. 

DIAGNOSTICS

Upon successful completion, setsid returns the calling process’s session ID.  ­Otherwise, a value of -1 is returned and errno is set to indicate the error. 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026