Comment configurer un service pour qu'il s'exécute au démarrage


244

J'ai un démon qui fonctionne bien si je le démarre manuellement avec la servicecommande:

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

mais ce n'est pas configuré pour démarrer automatiquement lorsque le PC redémarre.

Comment puis-je le configurer pour qu'il démarre automatiquement, même si personne n'est connecté au PC?


@ user154721 Quels arguments avez-vous donnés à update-rc.d pour que le démarrage automatique fonctionne? J'ai essayé diverses options mais je n'ai pas eu de chance.
— BennyTheBen

Les programmes à démarrage automatique sont configurés dans des autostartmanifestes ou dans des *.servicefichiers situés à plusieurs endroits, ainsi que dans init.dou crontab. Voir: unix.stackexchange.com/a/525845/43233
— Noam Manos Le

Réponses:


281
sudo update-rc.d minidlna defaults

Cela devrait ajouter le service au système de démarrage automatique. Mais si vous obtenez:

System start/stop links for /etc/init.d/minidlna already exist.

Faire la commande

sudo update-rc.d minidlna enable

PS : Pour plus de détails, consultez la page de manuel de update-rc.d en tapant la commandeman update-rc.d


7
merci, mais si je reçois cette sortie en exécutant cette commande?:System start/stop links for /etc/init.d/minidlna already exist.
— Ricardo Reyes

1
si minidlna n'écrit pas dans un fichier de log, vous ne le trouverez nulle part. Est-ce que cela échoue peut-être parce qu'il n'y a pas de connexion réseau au démarrage? Essayez de regarder la configuration s'il est possible d'activer le débogage et / ou l'enregistrement pour trouver ce qui ne va pas.
— LassePoulsen

8
@RicardoReyes utilise sudo update-rc.d -f minidlna removepour supprimer les liens existants.
— Dogweather

5
Je reçois au-dessous de l'erreur update-rc.d: /etc/init.d/usermanage: le fichier n'existe pas
— Rizwan Patel

2
Je suis aussi, a la même erreur update-rc.d: /etc/init.d/mongod: file does not exist. Ensuite, a sudo systemctl enable mongod.servicetravaillé pour moi.
— Explorateur

36

Parfois, vous devez exécuter un script au démarrage, par exemple, une configuration iptables au démarrage. Il n'est donc pas nécessaire d'exécuter le script manuellement à chaque redémarrage.

Vous pouvez exécuter votre script au démarrage dans Ubuntu en l’ajoutant au /etc/init.d/rc.localfichier. Regardez les étapes ci-dessous.

  1. Ouvrir le /etc/rc.localfichier avec cette commande:

    vim /etc/rc.local
    
  2. Ajoutez le script que vous souhaitez exécuter au démarrage, par exemple:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. Vérifiez les commentaires inclus dans ce fichier et assurez-vous qu’une sortie 0 est à la fin.

  4. Enregistrez les fichiers. Et votre script s'exécutera au démarrage.


2
Les commentaires de /etc/init.d/rc.local dans Ubuntu 12.04 disent "Description courte: exécutez /etc/rc.local s'il existe", alors peut-être que l'ajout des scripts à /etc/rc.local serait une meilleure idée?
— Sanghyun Lee

Cette méthode enverrait-elle une commande "shutdown" au service ou tuerait-elle simplement le processus à l'arrêt du système d'exploitation?
— Vadim Chekan

Vadim, rc.local est juste lancé au démarrage, rien n’est réalisé à l’arrêt. Le processus serait très probablement tué par le système d'exploitation à l'arrêt.
— Weboide

1
FYI: La différence entre rc.localvs l'ajouter à init, c'est que rc.local est exécuté à la fin de la séquence de démarrage d'init, plutôt qu'en tant que partie intégrante de celle
— BobTuckerman

35
  • Pour démarrer un démon au démarrage:

    update-rc.d service_name defaults
    
  • Retirer:

    update-rc.d -f service_name remove
    

default => niveaux d'exécution par défaut 2,3,4 et 5

Exemple:

update-rc.d tomcat7 defaults

1
Quand je fais cette commande, j'obtiens "Les liens de démarrage / arrêt du système pour /etc/init.d/tomcat7 existent déjà". cependant, lorsque je redémarre, tomcat ne démarre pas, je dois toujours faire "service tomcat7 start".
— John Little

Dans mon cas, sudo update-rc.d myservice default se termine toujours sans sortie et le service ne démarre pas au démarrage ou avec sudo service myservice start, qui se termine également en mode silencieux. sudo /etc/init.d/myservice start travaille cependant
— axk

13

Depuis Ubuntu 15.10 (respectivement Debian 8 "jessie"), vous devez utiliser la commande suivante pour configurer votre service minidlnaafin qu'il s'exécute au démarrage:

sudo systemctl enable minidlna.service

Et pour le désactiver à nouveau au démarrage:

sudo systemctl disable minidlna.service

Cela fonctionne avec toutes les références de nom de service que vous pouvez trouver avec ls /lib/systemd/system/*.service.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.