GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Faire démarrer Daemon avec Linux ?

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

  1. ajouté mon application démon dans /usr/sbin/ répertoire et changé NAME=myDaemon

  2. écrire update-rc.d myDaemon default dans Terminal

  3. et il a ajouté des liens symboliques vers rc#.d ré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


Linux
  1. Une introduction au fichier Linux /etc/fstab

  2. Linux - Sudo ne peut pas ouvrir /etc/sudoers ?

  3. Exemple de fichier /etc/services sous Linux

  4. Quelle est la connexion entre les répertoires /etc/init.d et /etc/rcX.d sous Linux ?

  5. Dans mon fichier /etc/hosts/ sous Linux/OSX, comment créer un sous-domaine générique ?

Commande Linux make expliquée avec des exemples

La bonne façon de modifier les fichiers /etc/passwd et /etc/group sous Linux

Configuration Linux :Comprendre les répertoires *.d dans /etc

Linux – /sbin/init n'existe pas ?

Qu'est-ce que le fichier /etc/passwd sous Linux ?

Linux make Commande avec des exemples