daemon(3)

BEZEICHNUNG
daemon - im Hintergrund ausführen

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

ÜBERSICHT
#include <unistd.h>

int daemon(int nichtchdir, int nichtclose);

    Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

daemon():
    Seit Glibc 2.21:
        _DEFAULT_SOURCE
    In Glibc 2.19 und 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Bis einschließlich Glibc 2.19:
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

BESCHREIBUNG
Die Funktion daemon() gibt einem Programm die Möglichkeit, sich selbst vom steuernden Terminal in den Hintergrund zu setzen und dort weiter als System-Daemon zu laufen.

Wenn nichtchdir gleich Null ist, macht daemon() das Wurzelverzeichnis (»/«, root directory) zum Arbeitsverzeichnis des Prozesses; anderenfalls bleibt das Arbeitsverzeichnis unverändert.

Wenn nichtclose gleich Null ist, leitet daemon() die Standardausgabe, die Standardeingabe und die Fehlerausgabe nach /dev/null um; anderenfalls werden keine Änderungen an den Dateideskriptoren vorgenommen.

RÜCKGABEWERT
(Diese Funktion ruft fork(2) auf. Wenn der Aufruf erfolgreich ist, ruft der Elternprozess _exit(2) auf, so dass nur der Kindprozess über weitere Fehler informiert wird.) Bei Erfolg gibt daemon() Null zurück. Wenn ein Fehler auftritt, gibt daemon() -1 zurück und setzt errno auf einen für fork(2) und setsid(2) beschriebenen Wert.

ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert
daemon() | Multithread-Fähigkeit | MT-Sicher

VERSIONEN
Eine ähnliche Funktion erscheint in den BSDs.

Die Glibc-Implementierung kann auch -1 zurückgeben, wenn /dev/null existiert, aber kein zeichenorientiertes Gerät ist und die Haupt- und Nebennummern (major/minor numbers) abweichen.

STANDARDS
Keine.

GESCHICHTE
4.4BSD.

FEHLER
Die GNU-C-Bibliotheksimplementierung dieser Funktion entstammt BSD und verwendet nicht die Zweifach-Fork-Technik (d.h. fork(2), setsid(2), fork(2)), die notwendig ist, um sicherzustellen, dass der entstandene Daemon kein Sitzungsleiter ist. Der entstandene Daemon ist ein Sitzungsleiter. Auf Systemen, die der System-V-Semantik gehorchen (z.B. Linux) bedeutet diese, dass ein Terminal unabsichtlich das steuernde Terminal für den Daemon wird, falls der Daemon dieses Terminal öffnet, welches nicht bereits ein steuerndes Terminal für eine andere Sitzung ist.

SIEHE AUCH
fork(2), setsid(2), daemon(7), logrotate(8)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Dennis Stampfer <kontakt@dstampfer.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> 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.