Provided by: manpages-de-dev_2.5-1_all bug

BEZEICHNUNG

       setsid - erzeugt eine neue Sitzung und setzt die Prozessgruppen-ID

ÜBERSICHT

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

       pid_t setsid(void);

BESCHREIBUNG

       setsid() erzeugt eine neue Sitzung, wenn der aufrufende Prozess kein Prozessgruppen-Führer
       ist. Der aufrufende Prozess wird dann Führer der neuen Sitzung (seine Sitzungs-ID ist  die
       gleiche  wie  die Prozess-ID). Der aufrufende Prozess wird außerdem zum Führer einer neuen
       Prozessgruppe  in  dieser  Sitzung  (seine  Prozessgruppen-ID  ist  die  gleiche  wie  die
       Prozess-ID).

       Der  aufrufende  Prozess wird der einzige Prozess in der neuen Prozessgruppe und der neuen
       Sitzung sein.

       Anfänglich hat die neue Sitzung kein steuerndes Terminal. Für Details  darüber,  wie  eine
       Sitzung ein steuerndes Terminal erlangt, siehe credentials(7).

RÜCKGABEWERT

       Bei  Erfolg  wird  die  (neue)  Sitzungs-ID  des aufrufenden Prozesses zurückgeliefert. Im
       Fehlerfall ist der Rückgabewert (pid_t) -1 und errno wird entsprechend gesetzt.

FEHLER

       EPERM  Die Prozessgruppen-ID irgendeines Prozesses  der  Prozessgruppe  ist  die  PID  des
              aufrufenden  Prozesses.  Somit  schlägt  der  Aufruf von setsid() insbesondere dann
              fehl, wenn der aufrufende Prozess bereits ein Prozessgruppen-Führer ist.

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, SVr4.

ANMERKUNGEN

       Ein mittels fork(2) erzeugter Kindprozess erbt die Sitzungs-ID seines Elternprozesses. Die
       Sitzungs-ID bleibt über einen Aufruf von execve(2) erhalten.

       Ein  Prozessgruppen-Führer ist ein Prozess, dessen Prozessgruppen-ID und Prozess-ID gleich
       sind. Wenn einem Prozessgruppen-Führer  verboten  wird,  setsid()  aufzurufen,  wird  auch
       verhindert,  dass  der Prozessgruppen-Führer sich selbst in einer neuen Sitzung platziert,
       während andere Prozesse in der Prozessgruppe in ihrer  Originalsitzung  verbleiben.  Solch
       ein  Szenario  würde  die  strikte zweistufige Hierarchie von Sitzungen und Prozessgruppen
       verletzen. Um sicher zu stellen, dass setsid() funktioniert, rufen  Sie  fork(2)  auf  und
       lassen Sie den Elternprozess _exit(2) ausführen, während das Kind (das bei Definition kein
       Prozessgruppenleiter sein kann) setsid() aufruft.

       Falls eine Sitzung ein steuerndes Terminal hat und der Schalter CLOCAL für dieses Terminal
       nicht  gesetzt  ist  und das Terminal aufhängt, dann wird dem Sitzungsleitenden ein Signal
       SIGHUP gesandt.

       Falls ein Prozess, der ein Sitzungsleitender ist,  sich  beendet,  dann  wird  ein  Signal
       SIGHUP an jeden Prozess in der Vordergrundprozessgruppe des steuernden Terminals gesandt.

SIEHE AUCH

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

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  4.15  des  Projekts  Linux-man-pages. Eine
       Beschreibung des Projekts, Informationen, wie Fehler  gemeldet  werden  können  sowie  die
       aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die    deutsche    Übersetzung    dieser    Handbuchseite    wurde    von   Stefan   Janke
       <gonzo@burg.studfb.unibw-muenchen.de>, Martin Eberhard Schauer  <Martin.E.Schauer@gmx.de>,
       Mario    Blättermann    <mario.blaettermann@gmail.com>    und    Dr.    Tobias   Quathamer
       <toddy@debian.org> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version   3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE  HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.