Provided by: manpages-de-dev_4.15.0-9_all bug

BEZEICHNUNG

       setsid - erzeugt eine neue Sitzung und setzt die Prozessgruppenkennung

ÜBERSICHT

       #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 Sitzungskennung  ist
       die gleiche wie die Prozesskennung). Der aufrufende Prozess wird außerdem zum Führer einer
       neuen Prozessgruppe in dieser Sitzung (seine Prozessgruppenkennung ist die gleiche wie die
       Prozesskennung).

       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) Sitzungskennung des aufrufenden Prozesses zurückgeliefert. Im
       Fehlerfall ist der Rückgabewert (pid_t) -1 und errno wird entsprechend gesetzt.

FEHLER

       EPERM  Die Prozessgruppenkennung 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 Sitzungskennung seines Elternprozesses.
       Die Sitzungskennung bleibt über einen Aufruf von execve(2) erhalten.

       Ein Prozessgruppen-Führer ist ein Prozess, dessen Prozessgruppenkennung und Prozesskennung
       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  5.13  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>,
       Dr.      Tobias      Quathamer      <toddy@debian.org>      und      Mario     Blättermann
       <mario.blaettermann@gmail.com> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version  3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 die Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.