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.