J'écris une application démon simple en utilisant C/C++ et je veux qu'elle démarre au démarrage de Linux.
J'ai essayé de modifier /etc/init.d/skeleton pour ajouter un script dans le répertoire init.d comme suit
-
ajouté mon application démon dans
/usr/sbin/répertoire et changéNAME=myDaemon -
écrire
update-rc.d myDaemon defaultdans Terminal -
et il a ajouté des liens symboliques vers
rc#.drépertoires
Mais ça n'a pas marché.
Ma deuxième tentative a été de modifier rc.local comme
/usr/sbin/myDaemon start
Mais cela n'a pas fonctionné non plus.
Comment puis-je faire démarrer mon démon avec le système d'exploitation ? Je veux tout faire par programmation.
J'utilise Ubuntu 10.10 mais s'il existe une solution générale pour toutes les distributions, ce serait super !
Réponse acceptée :
Vous ne modifiez pas le /etc/init.d/skeleton dossier. Vous copiez dans un nouveau fichier /etc/init.d/mamoudservice (remplace mamoudservice avec un nom plus approprié) et ensuite vous éditez ce nouveau fichier de manière appropriée.
Ensuite, vous ajoutez un lien symbolique depuis /etc/rc2.d/S99mamoudservice vers /etc/init.d/mamoudservice etc.
Utilisez par exemple
/bin/bash -vx /etc/init.d/mamoudservice start
pour comprendre comment le bash shell interprète votre script.
Si votre programme démon /usr/sbin/mamouddaemon est codé en C ou en C++, je suggère d'utiliser openlog et syslog à l'intérieur, au moins pour obtenir des messages de débogage (ne sortez pas vers stderr ou stdout dans un démon, il pourrait aller nulle part).
Une alternative à votre /etc/init.d/mamoudservice le script pourrait être de mettre un @reboot entrée dans votre crontab