bionic (2) setsid.2.gz

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