Existe-t-il un moyen «standard» de faire du démon dans Debian?

J'ai besoin de créer un démon de l'application dans Debian. Existe-t-il un outil standard pour Debian comme «upstart» dans Ubuntu? Je n'ai besoin que de commands start-stop, pour démarrer un programme en tant que diable avec quelques options et un file pid et le tuer avec le file pid.

J'ai regardé init.d mais il semble que ce soit pour le lancement de démarrage. Je veux commencer mon démon de manière manuelle.

Vous pouvez créer votre démon de manière manuelle à la suite du file /etc/init.d/skeleton sur Debian.

Vous pouvez utiliser /usr/bin/service pour lancer $ sudo service yourdaemon start et sstop $ sudo service yourdaemon stop votre démon.

Tant que vous ne liez pas votre script à aucun des directorys /etc/rc?.d , il ne démarrera pas lors du démarrage.

D'autre part, vous voudrez peut-être regarder les daemontools , ce qui n'est pas standard sur Debian mais présente des fonctionnalités intéressantes.

Debian (et Ubuntu) ont le programme helper start-stop-daemon qui est utilisé dans les scripts init. Il existe de nombreuses options pour démarrer et suivre les démons. Vous pouvez simplement écrire une enveloppe autour de celle-ci, par exemple

 case $1 in start) start-stop-daemon --start --exec /my/exec/prog --pidfile /my/pid/file --background ;; stop) start-stop-daemon --stop --pidfile /my/pid/file ;; esac 

Pour démembrer correctement un process pour Debian, vous devrez prendre plusieurs mesures, y compris le renversement du process de contrôle, la réinitialisation des IO et la création d'un file d'identification du process pour que vous jouiez bien. Vous pouvez à la place utiliser quelque chose comme le programme Daemon du package du même nom pour le faire pour vous. Si c'est ce que vous vouliez faire, la réponse peut être trouvée ici sur StackOverflow: https://stackoverflow.com/questions/3095566/linux-daemonize

La command upstart est plus proche de la command invoke-rc.d de Debian ou de la command de service du package sysvinit-utils. Ils s'attendent à désactiver les scripts d'init dans /etc/init.d. Il est standard sur Debian de créer l'un de ceux de votre packageage et de faire fonctionner le programme start-stop-daemon comme vous pouvez le voir dans l'exemple /etc/init.d/skeleton.

Tout simplement parce que vous créez un script /etc/init.d/myservice ne signifie pas qu'il doit démarrer automatiquement. Vous pouvez régler les niveaux d'exécution auxquels il s'arrête et démarre automatiquement à l'aide d'un outil comme update-rc.d. Ceci est décrit plus en détail pour désactiver le démarrage d'un service à tous les niveaux d'exécution?