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?

Ricardo Reyes
la source
@ 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

LassePoulsen
la source
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.

hhlp
la source
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
Lakal Malimage
la source
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.

Tanius
la source