Linux x86_64Processos & threads#112
setsid
Cria uma nova sessão e um novo grupo de processos, com o chamador como líder de ambos.
Descrição
Passo clássico na criação de um daemon: desassocia o processo do terminal de controle original, evitando que sinais de controle de job (SIGHUP ao fechar o terminal, etc.) o alcancem.
Header:
unistd.hman 2Atenção
Falha com EPERM se o chamador já for líder de grupo de processos — por isso daemons tipicamente fazem um `fork` antes de chamar `setsid`.
Assinatura
pid_t setsid(void);Parâmetros
Esta função não recebe parâmetros.
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
Valor de retorno
O novo ID de sessão em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EPERM(1)
- Operação não permitida (falta de privilégio).