{{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]].//