{{tag>BROUILLON}} ====== 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 ===== nom du service à créer 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 : * sudo cp /etc/init.d/skeleton /etc/init.d/monprogramme [[tutoriel:mini-tutoriels:ficedit#Modifier un fichier avec les droits d'administration|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** : ^Variable^Valeur^Commentaire^ ^DESC|**mon programme**|description| ^NAME|**monprogramme**|nom du service dans **/usr/bin**| ^DAEMON|**/usr/bin/$NAME**|monprogramme 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** ((nécessaire pour pouvoir l'arrêter)), 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 [[logiciel:os:linux:commandes_linux:start-stop-daemon]] Rendez le script exécutable : * sudo chmod +x /etc/init.d/vncserver et activez-le : * sudo update-rc.d vncserver defaults ===== Autres étapes ===== ===== Conclusion ===== ===== Problèmes connus ===== ===== Voir aussi ===== * [[http://]] ---- //Contributeurs principaux : [[:utilisateurs:jamaique]].//