web-dev-qa-db-fra.com

Qu'est-ce que start-stop-daemon dans les scripts Linux?

Qu'est-ce que le démon start-stop et comment doit-il être utilisé?

J'essaie d'automatiser un programme particulier à exécuter. Chaque fois que le système démarre, le programme doit s'exécuter. Pour cela j'écris un script en /etc/init.d/ emplacement.

43
Rajeev Das

Il s'agit d'un programme pour gérer le démarrage et l'arrêt des processus d'arrière-plan au niveau du système (démons). Vous l'utilisez en passant des paramètres (tels que le fichier pid pour créer/vérifier) ​​et des arguments de commande pour le processus que vous souhaitez lancer.

Ensuite, vous effectuez l'une des deux opérations suivantes:

start-stop-daemon -S [other arguments] something

démarrer something, si something n'était pas déjà en cours d'exécution. S'il fonctionnait, ne faites rien.

start-stop-daemon -K [other arguments] something

arrêter something. Si something n'était pas en cours d'exécution, ne faites rien.

La page de manuel fournit plus d'informations sur les différents arguments. En règle générale, un modèle est fourni dans /etc/init.d/ qui contient d'autres commandes pour le processus d'initialisation qui contrôlent l'exécution des processus d'arrière-plan.


Qu'est-ce que ça veut dire?

start-stop-daemon --start --background -m --oknodo --pidfile $ {PIDFILE} --exec $ {DAEMON} - $ {TARGETDIR}

  • --background = lancement en arrière-plan
  • -m = créer un fichier PID. Ceci est utilisé lorsque votre processus ne crée pas son propre fichier PID et est utilisé avec --background
  • --oknodo = retour 0, ne pas 1 si aucune action n'est effectuée par le démon
  • --pidfile ${PIDFILE} = vérifier si le fichier PID a été créé ou non
  • --exec = assurez-vous que les processus sont des instances de cet exécutable (dans votre cas, DAEMON)
58
Burhan Khalid

Copiez le /etc/init.d/skeletonfichier (par exemple /etc/init.d/rajeevdaemon ou un autre bon nom), qui est un script Shell avec beaucoup de commentaires, et modifiez-le selon vos besoins. Ajoutez ensuite des liens symboliques appropriés, par exemple /etc/rc2.d/S98rajeevdaemon et /etc/rc2.d/K98rajeevdaemon à elle.

En savoir plus sur runlevels .

Et les distributions Linux récentes (ou futures) utilisent de plus en plus systemd

9