DAEMON(3)

NOM
daemon - Exécuter en arrière-plan

SYNOPSIS
#include <unistd.h>

int daemon(int nochdir, int noclose);

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

daemon():
    Depuis la glibc 2.21 :
        _DEFAULT_SOURCE
    Pour la glibc 2.19 et 2.20 :
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Pour la glibc antérieure et égale à 2.19 :
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

DESCRIPTION
La fonction daemon() sert aux programmes désireux de se détacher de leur terminal de contrôle, et de s'exécuter en arrière-plan à la manière des démons système.

If nochdir is zero, daemon() changes the process's current working directory to the root directory ("/"); otherwise, the current working directory is left unchanged.

si noclose vaut zéro, daemon() redirige l'entrée standard, la sortie standard, et la sortie d'erreur vers /dev/null ; sinon aucun changement sur ces descripteurs n'est réalisé.

VALEUR RENVOYÉE
Cette fonction exécute un fork(2), et s'il réussit, le père effectue un _exit(2), ainsi, toutes les erreurs éventuelles apparaissent uniquement du côté du fils. La fonction daemon() renvoie zéro si elle réussit. Si une erreur se produit, elle renvoie -1 et définit la variable globale errno avec l'un des codes d'erreurs indiqués par les fonctions fork(2) et setsid(2).

ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur
daemon() | Sécurité des threads | MT-Safe

CONFORMITÉ
Not in POSIX.1. A similar function appears on the BSDs. The daemon() function first appeared in 4.4BSD.

NOTES
L'implémentation de la glibc peut également renvoyer -1 si /dev/null existe et qu'il n'est pas un périphérique caractère, avec les numéros mineur et majeur attendus. Dans ce cas, errno ne sera pas définie.

BOGUES
The GNU C library implementation of this function was taken from BSD, and does not employ the double-fork technique (i.e., fork(2), setsid(2), fork(2)) that is necessary to ensure that the resulting daemon process is not a session leader. Instead, the resulting daemon is a session leader. On systems that follow System V semantics (e.g., Linux), this means that if the daemon opens a terminal that is not already a controlling terminal for another session, then that terminal will inadvertently become the controlling terminal for the daemon.

VOIR AUSSI
fork(2), setsid(2), daemon(7), logrotate(8)

COLOPHON
Cette page fait partie de la publication 5.08 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page, peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french@lists.debian.org>.