Table des matières

Démarrer un programme en tant que service (DAEMON)

Ce tutoriel décrit la démarche à suivre pour qu'un programme démarre en tant que service.

Il faut pour cela créer un lanceur dans /etc/init.d.

Pour un démarrage automatique, il faut l’ajouter comme service au démarrage de Linux.

Pré-requis

Première étape : créer le lanceur

<term monprogramme>nom du service à créer</term>

Pour créer un lanceur dans /etc/init.d, le plus simple est de partir du modèle fourni /etc/init.d/skeleton.

Copiez le fichier /etc/init.d/skeleton fourni comme modèle :

Ouvrez avec les droits d'administration le fichier /etc/init.d/monprogramme et repérez les lignes suivantes:

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Description of the service"
NAME=daemonexecutablename
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="--options args"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

Renseignez ce qui concerne monprogramme :

VariableValeurCommentaire
DESCmon programmedescription
NAMEmonprogrammenom du service dans /usr/bin
DAEMON/usr/bin/$NAMEmonprogramme se trouve dans /usr/bin et non dans /usr/sbin
DAEMON_ARGS““arguments pour lancer monprogramme

Ce qui donne:

PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="Programme de ..."
NAME=monprogramme
DAEMON=/usr/bin/$NAME
DAEMON_ARGS=""
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

Pour que le programme crée un fichier .pid 1), ajoutez l'option –make-pidfile (ou -m) dans les deux lignes commençant par start-stop-daemon –start… de la procédure do_start()

Ce qui donne dans /etc/init.d/monprogramme :

#
# Function that starts the daemon/service
#
do_start()
{
	start-stop-daemon --start --quiet --m --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
		|| return 1
	start-stop-daemon --start --quiet --m --pidfile $PIDFILE --exec $DAEMON -- \
		$DAEMON_ARGS \
		|| return 2
[...]
}

Pour plus de détails, voir la page Résumé de la page de man de start-stop-daemon

Rendez le script exécutable :

et activez-le :

Autres étapes

Conclusion

Problèmes connus

Voir aussi


Contributeurs principaux : Jamaique.

1)
nécessaire pour pouvoir l'arrêter