Linux |
CentOS 4.8 |
|
daemon(3) |
daemon − Exécution en arrière-plan. |
#include <unistd.h> int daemon (int nochdir, int noclose); |
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. Si l’argument nochdir vaut zéro, daemon() modifie le répertoire de travail pour revenir à la racine ("/"). Ceci évite de bloquer un système de fichiers (comme /home) que l’on ne pourrait pas démonter durant son exécution. Si l’argument noclose vaut zéro, daemon() redirige l’entrée standard, la sortie standard, et la sortie d’erreur vers /dev/null. |
(Cette fonction exécute un fork(), et s’il réussit, le père effectue un _exit(0), ainsi toutes les erreurs éventuelles apparaissent uniquement du côté fils). La fonction daemon() renvoie zéro si elle réussit. Si une erreur se produit, daemon() renvoie -1 et remplit la variable globale errno avec l’un des code d’erreurs renvoyés par les fonctions fork(2) et setsid(2). |
fork(2), setsid(2) |
L’implémentation de la GlibC peut également renvoyer −1 si /dev/null existe mais n’est pas un noeud spécial en mode caractère, avec les numéros mineur et majeur attendus. Dans ce cas, errno ne sera pas remplie. |
La fonction daemon() est apparue en premier dans BSD4.4. |
Christophe Blaess, 2000. |
daemon(3) |