focal (2) setsid.2.gz

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

BEZEICHNUNG

       setsid - erzeugt eine neue Sitzung und setzt die Prozessgruppenkennung

Ü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 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.03  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 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>.