Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| deamon [Le 27/09/2009, 16:29] – 213.95.41.13 | deamon [Le 01/10/2009, 17:44] (Version actuelle) – effacée RedLemon | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | ||
| - | ====== Comment transformer un programme en daemon. ====== | ||
| - | |||
| - | ===== Définition ===== | ||
| - | |||
| - | Qu'est un daemon : | ||
| - | |||
| - | [Unix] Originellement DAEMON, Brit. pour « Disk and Execution MONitor ». Programme réalisant des tâches de fond du système, sous Unix. Appelé aussi driver sur d' | ||
| - | |||
| - | ===== Pourquoi ce tutoriel? ===== | ||
| - | |||
| - | Il est parfois nécessaire de transformer un programme en daemon, surtout lors de mise en place de serveur. Par exemple, les serveurs de jeux, ou des programmes de téléchargement automatique tel que SABnzbd. Le problème est que les scripts pour « daemonizer » que l'on trouve sur internet, sont mal conçûs, voir dangereux pour le système en cas de mauvaise utilisation. | ||
| - | |||
| - | ===== Mise en place ===== | ||
| - | |||
| - | Il faut d' | ||
| - | |||
| - | Pour cela, on lance son éditeur favori, soit [[nano]] en ligne de commande, soit [[gedit]], | ||
| - | |||
| - | ==== Script ==== | ||
| - | |||
| - | On utilise proprement start-stop-daemon qui permet de deamonizé n' | ||
| - | |||
| - | Exemple pour SABnzbd : | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | < | ||
| - | #! /bin/sh -e | ||
| - | |||
| - | DAEMON="/ | ||
| - | DEAMON_OPT=" | ||
| - | DAEMONUSER=" | ||
| - | DEAMON_NAME= « SABnzbd.py » #Nom du programme (doit etre identique à l' | ||
| - | |||
| - | PATH="/ | ||
| - | |||
| - | test -x $DAEMON || exit 0 | ||
| - | |||
| - | . / | ||
| - | |||
| - | d_start () { | ||
| - | log_daemon_msg " | ||
| - | start-stop-daemon --background --name $DEAMON_NAME --start --quiet --user $DAEMONUSER --exec $DAEMON -- $DEAMON_OPT | ||
| - | log_end_msg $? | ||
| - | } | ||
| - | |||
| - | d_stop () { | ||
| - | log_daemon_msg " | ||
| - | start-stop-daemon --name $DEAMON_NAME --stop --retry 5 --quiet --name $DEAMON_NAME | ||
| - | log_end_msg $? | ||
| - | } | ||
| - | |||
| - | case " | ||
| - | |||
| - | start|stop) | ||
| - | d_${1} | ||
| - | ;; | ||
| - | |||
| - | restart|reload|force-reload) | ||
| - | d_stop | ||
| - | d_start | ||
| - | ;; | ||
| - | |||
| - | force-stop) | ||
| - | | ||
| - | killall -q $DEAMON_NAME || true | ||
| - | sleep 2 | ||
| - | killall -q -9 $DEAMON_NAME || true | ||
| - | ;; | ||
| - | |||
| - | status) | ||
| - | status_of_proc " | ||
| - | ;; | ||
| - | *) | ||
| - | echo " | ||
| - | exit 1 | ||
| - | ;; | ||
| - | esac | ||
| - | exit 0 | ||
| - | </ | ||
| - | |||
| - | Maintenant on sauvegarde le fichier dans son répertoire home "/ | ||
| - | |||
| - | Maintenant on va le déplacer dans /etc/init.d et lui donner les bons droits d' | ||
| - | |||
| - | < | ||
| - | sudo cp / | ||
| - | sudo chmod 0755 / | ||
| - | </ | ||
| - | |||
| - | On teste notre script : | ||
| - | |||
| - | < | ||
| - | sudo / | ||
| - | * Starting system SABnzbd Daemon | ||
| - | |||
| - | sudo / | ||
| - | * Stopping system SABnzbd Daemon | ||
| - | </ | ||
| - | |||
| - | Maintenant on ajoute le service au démarrage de l' | ||
| - | |||
| - | < | ||
| - | sudo update-rc.d sabnzbd defaults | ||
| - | |||
| - | | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | |||
| - | </ | ||
| - | |||
| - | Pour le retirer : | ||
| - | |||
| - | < | ||
| - | sudo update-rc.d -f sabnzbd remove | ||
| - | |||
| - | | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | Voila, votre programme fonctionne en tant que deamon et sera lancé automatique au démarrage de l' | ||
| - | |||
| - | ===== Documentation supplémentaire | ||
| - | |||
| - | http:// | ||
| - | |||
| - | http:// | ||
| - | |||
| - | http:// | ||
| - | |||
| - | ---- | ||
| - | // | ||
