setsid(2)
crea una sesión y define el ID de grupo del proceso
SINOPSIS
#include <unistd.h>
pid_t setsid(void);
DESCRIPCIÓN
setsid() crea una nueva sesión si el proceso que realiza la llamada
no es lider de grupo de procesos. El proceso que realiza la llamada
es lider de la nueva sesión, lider de grupo de procesos del
nuevo grupo de procesos, y no tiene terminal controladora.
El ID del grupo de procesos y el ID de la sesión del proceso que
realiza la llamada se ponen al PID del proceso que realiza la
llamada. Dicho proceso será el único proceso en este nuevo grupo
de procesos y en esta nueva sesión.
VALOR DEVUELTO
El ID de la sesión del proceso que realiza la llamada.
ERRORES
Si hubo error, se devuleve -1. El único error que puede suceder
es EPERM. Se devuelve cuando el ID del grupo de procesos de
cualquier proceso es igual al PID del proceso que realiza la
llamada. De este modo, en particular,
setsid
falla si el proceso que realiza la llamada ya es lider de grupo
de procesos.
OBSERVACIONES
El lider de grupo de procesos es un proceso con el ID de grupo
igual a su PID. Para asegurarse de que
setsid
tenga éxito, cree un proceso hijo con fork y termine, y deje que el hijo ejecute
setsid().
CONFORME A
POSIX, SVr4.