PR_SET_CHILD_SUBREAPER(2const)

BEZEICHNUNG
PR_SET_CHILD_SUBREAPER - Setzt das Attribut »child subreaper« des aufrufenden Prozesses (zurück)

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <linux/prctl.h>  /* Definition der PR_*-Konstanten */
#include <sys/prctl.h>

int prctl(PR_SET_CHILD_SUBREAPER, long gesetzt);

BESCHREIBUNG
Falls gesetzt sich von Null unterscheidet, wird das Attribut »child subreaper« gesetzt; ist gesetzt Null, dann wird das Attribut zurückgesetzt.

Ein Subreaper erfüllt die Rolle von init(1) für seine von ihm erzeugten Prozesse (»Nachkommen«). Wenn ein Prozess verwaist wird (d.h. sein direkter Elternprozess beendet sich), dann erhält dieser Prozess den nächsten noch aktiven Nachkommen-Subreaper als neuen Elternprozess. Konsequenterweise werden Aufrufe an getppid(2) in dem verwaisten Prozess dann die PID des Subreaper-Prozesses zurückliefern und wenn sich der verwaiste Prozess beendet, wird der Subreaper-Prozess ein Signal SIGCHLD erhalten und in der Lage sein, wait(2) auf den Prozess auszuführen, um seinen Beendigungsstatus zu bestimmen.

Die Einstellung des Attributs »child subreaper« wird nicht an Kindprozesse vererbt, die mit fork(2) und clone(2) erstellt werden. Über execve(2) wird die Einstellung erhalten.

Die Etablierung eines Subreaper-Prozesses ist in Sitzungsverwaltungs-Rahmenwerken nützlich, bei denen eine hierarchische Gruppe von Prozessen durch einen Subreaper-Prozess verwaltet wird, der informiert werden muss, wenn sich der Prozesse beendet, z.B. ein zweimal mit Fork gestarteter Daemon. Damit kann möglicherweise ein Prozess neugestartet werden. Einige init(1)-Rahmenwerke (z.B. systemd(1)) setzen Subreaper-Prozesse für ähnliche Zwecke ein.

RÜCKGABEWERT
Bei Erfolg wird 0 zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

STANDARDS
Linux.

GESCHICHTE
Linux 3.4.

SIEHE AUCH
prctl(2), PR_GET_CHILD_SUBREAPER(2const)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> 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.