setsid(2)

NAAM
setsid - maakt een sessie aan en zet de proces groep ID

BIBLIOTHEEK
Standaard C bibliotheek (libc, -lc)

SAMENVATTING
#include <unistd.h>

pid_t setsid(void);

BESCHRIJVING
setsid() maakt een nieuwe sessie aan als het aanroepende proces niet de proces groep leider is. Het aanroepende proces is de leider van de nieuwe sessie (m.a.w. zijn sessie ID wordt hetzelfde gemaakt als zijn proces ID). Het aanroepende proces wordt op deze manier ook de proces groep leider van een nieuwe proces groep in de sessie (m.a.w. de proces groep ID wordt hetzelfde gemaakt als zijn proces ID).

Het aanroepende proces zal het enige proces zijn in deze nieuwe proces groep en in deze nieuwe sessie.

Initieel heeft de nieuwe sessie geen controlerende terminal. Zie, voor details op welke manier een sessie een controlerende terminal verkrijgt, credentials(7).

EIND WAARDE
Bij succes, wordt de (nieuwe) sessie ID van het aanroepende proces teruggegeven. Bij een fout, wordt (pid_t)-1 teruggegeven, en wordt errno gezet om de fout aan te geven.

FOUTEN

EPERM
    De proces groep ID van elk proces is gelijk aan de PID van het aanroepende proces. Daarom zal in het bijzonder setsid() falen als het aanroepende proces al een proces groep leider is.

STANDAARDEN
POSIX.1-2024.

HISTORIE
POSIX.1-2001, SVr4.

OPMERKINGEN
Een kind aangemaakt door fork(2) erft het sessie ID van zijn ouders. De sessie ID blijft bewaard dwars door execve(2).

Een proces groep leider is een proces waarvan zijn proces groep ID gelijk is aan zijn PID. Niet toestaan dat een proces groep leider setsid() aanroept voorkomt de mogelijkheid dat een proces groep leider zichzelf in een nieuwe sessie zet terwijl ander processen in de proces groep in de originele sessie blijven; zo´n scenario zou de strikte twee-niveau hiërarchie van sessies en proces groepen breken. Om er zeker van te zijn dat setsid() succesvol is, roep dan fork(2) aan en zorg ervoor dat de ouder _exit(2) aanroept, terwijl het kind (die per definitie geen proces groep leider kan zijn) setsid(2) aanroept.

Als een sessie een controlerende terminal heeft, en de CLOCAL vlag voor deze terminal is niet gezet, en de terminal wordt opgehangen, dan zal een SIGHUP signaal naar de sessie leider gestuurd worden.

Als een proces, zijnde de sessie leider, eindigt, dan zal een SIGHUP signaal naar elk proces in de voorgrond proces groep van de controlerende terminal gestuurd worden.

ZIE OOK
setsid(1), getsid(2), setpgid(2), setpgrp(2), tcgetsid(3), credentials(7), sched(7)

VERTALING
De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.