Comment empêcher un démon de démarrer au démarrage dans Debian

16

Il y a quelques démons que je désactive de démarrer au démarrage. À titre d'exemple, j'utilise ce qui suit:

 sudo update-rc.d -f postgresql remove

Je ne sais même pas si cette commande est correcte et je ne me souviens pas d'où je l'ai obtenue.

Quoi qu'il en soit, chaque fois que je mets à niveau postgresql, le paramètre est perdu (c'est-à-dire que le démon démarre au redémarrage).

tshepang
la source
1
Sur Debian avec SysVinit, j'aime bien file-rc. Au lieu de gérer les liens symboliques, je gère un fichier texte avec mes configurations de niveau d'exécution.
Gilles 'SO- arrête d'être méchant'

Réponses:

22

update-rc.da été initialement utilisé par les scripts de mise à niveau des packages. removeest appelé lors de la désinstallation du package et supprime tous les liens, defaultsest appelé lors de l'installation du package enableou disablepeut être utilisé en fonction de debconf et est utile pour les administrateurs système. Les nettoyages removene sont en fait pas utiles pour désactiver un service. Depuis la page de manuel:

Une erreur d'administration système courante consiste à supprimer les liens en pensant que cela "désactivera" le service, c'est-à-dire que cela empêchera le démarrage du service. Cependant, si tous les liens ont été supprimés, la prochaine fois que le package sera mis à niveau, le script postinst du package exécutera à nouveau update-rc.d et réinstallera les liens à leur emplacement par défaut. La bonne façon de désactiver les services consiste à configurer le service comme arrêté dans tous les niveaux d'exécution dans lesquels il est démarré par défaut. Dans le système System V init, cela signifie renommer les liens symboliques du service de S en K.

sudo update-rc.d postgresql disablefera ce que vous voulez, car il conserve les liens symboliques rc.d mais avec le préfixe K (tué, arrêté). Retournez-le avec un enable. Certains services prennent en charge la désactivation de leur /etc/defaults/$servicefichier, mais malheureusement, il existe des exceptions. D'autres façons de désactiver un service sont de chmod -x le /etc/init.d/$servicefichier, ou d'insérer un exit 0en haut de celui-ci.

Tobu
la source
6

Pour clarifier la meilleure solution, similaire à la réponse donnée par Tobu:

  1. Ne pas utiliser update-rc.davec l' removeoption.
  2. Utilisez plutôt update-rc.dl' disableoption.

Exemple: update-rc.d postgresql disable


PLUS, vous pouvez également trouver (et désactiver) d'autres services plus spécifiques avec systemctl .

Exemple: systemctl disable pppd-dns.service

Arahkun
la source
+1 pour le conseil de ne pas utiliser l'option SUPPRIMER
PYK
3

Tobu est tout à fait raison, mais pour être complet , il est un outil pour vous donner une vue d' ensemble intelligent: sysv-rc-conf. Pour copie et patse:

apt-get install sysv-rc-conf

En cours d'exécution, sysv-rc-confvous verrez quel script est exécuté dans quel niveau d'exécution. Vous pouvez activer / désactiver les services via spaceet quitter avec q.

binfalse
la source
2
J'aime aussi rcconf, c'est dans les repos standard. N'oubliez pas qu'aucun de ces éléments ne fonctionnera avec upstart, qui est par défaut sur Ubuntu. Bien que beaucoup de choses utilisent toujours l'init hérité.
JM Becker