J'ai un service foo
qui démarre actuellement au niveau d'exécution et supérieur. Comment puis-je l'empêcher de le faire, sans utiliser update-rc.d foo stop 3 .
, ce qui (si je comprends bien) désactiverait le service à chaque changement de niveau d'exécution.
(c.-à-d., si j'étais au niveau d'exécution 1 et activé foo
, alors lorsque je passerais au niveau d'exécution , il serait désactivé, non?)
Exécuter Debian GNU/Linux Lenny.
Le terme "stop" n'empêche pas le démon de démarrer mais l'arrête plutôt lors de la saisie du niveau d'exécution spécifié.
Si vous souhaitez simplement supprimer un service/démon d'un seul niveau d'exécution, update-rc.d
comme l'a souligné bei freiheit ou supprimez simplement le lien symbolique de /etc/rcX.d/
, où X est votre niveau d'exécution. Si vous ne souhaitez pas que le service démarre automatiquement, update-rc.d -f foo remove
fera l'affaire.
Configurer les applications de démarrage Linux avec sysv-rc-conf :
apt-get install sysv-rc-conf
Comme d'autres l'ont souligné, voici également pdate-rc.d pour la ligne cmd.
Par exemple, exécutez
update-rc.d Apache2 disable
pour désactiver Apache2 à tous les niveaux d'exécution.
Court:
Il n'y a aucun moyen fiable de le faire rapidement.
Longue:
Debian actuelle (Debian instable depuis le 01/06/2012) n'a actuellement aucun moyen fiable et rapide de désactiver systématiquement un service/démon. - Parce qu'une mise à niveau d'un paquet démon exécute inconditionnellement "/etc/init.d/package restart", en le désactivant pour ce niveau d'exécution ou non.
Pour vous assurer qu'un démon ne démarre pas, vous pouvez:
Il y a/était (?) Une étape init-policy-something pour les scripts init dans Debian, qui était censée combler cette fonctionnalité manquante. - J'ai essayé de l'utiliser, je l'ai trouvé compliqué, j'ai trouvé un bug et je ne l'ai plus jamais touché.
Mise à jour:
Passez à "systemd", une alternative à "initd". Un paquet Debian existe et vous pouvez désactiver un service avec quelque chose comme ceci:
cd /etc/systemd/system
ln -s /dev/null xyz.service
Exécutez cette commande
apt-get install rcconf
Une fois installé, exécutez rcconf dans SSH et vous recevrez une boîte de dialogue affichant tous les services définis pour s'exécuter au démarrage. Sélectionnez ceux en appuyant sur Espace pour désactiver/activer le particulier et vous avez terminé, cliquez simplement sur Ok et ce service ne prendra pas la peine de recommencer au prochain démarrage. L'utiliser depuis des années. Très outil pratique pour les utilisateurs Debian/Ubuntu comme moi.
Je pense que cela ferait le travail: insserv -r foo
Je ne comprends pas ce que vous essayez d'accomplir.
À quels niveaux d'exécution voulez-vous que foo fonctionne?
Si vous voulez toujours qu'il fonctionne, utilisez update-rc.d foo defaults
; qui l'arrêtera en 0, 1 et 6, tout en le laissant tourner en 2, 3, 4 et 5. (1 ne devrait rien faire d'autre qu'un Shell, 0 et 6 sont arrêtés et redémarrés)
Si vous souhaitez spécifier exactement les niveaux d'exécution à exécuter:
update-rc.d foo stop 0 1 6 3 . start 2 4 5 .
Commencez à utiliser insserv depuis Debian7
Afficher tous les services et les informations de niveau d'exécution
insserv --showall
Supprimer les scripts répertoriés de tous les niveaux d'exécution
insserv --remove [specify_script]
Pourquoi ne sauvegardez-vous pas le script de démarrage ailleurs et ne le supprimez-vous pas dans /etc/init.d/? Si la mise à jour-rc.d ne fonctionne pas.
Le gestionnaire de démarrage d'Ubuntu est une sorte de lumière sysv-rc-conf , une version GUI plus conviviale, et beaucoup de gens lisant ce fil l'apprécieront.
Sur un système basé sur Red Hat, vous pouvez utiliser
chkconfig httpd off
chkconfig httpd --del
supprimer le serveur des niveaux d'exécution
sur un système basé sur Debian, tous les services sont supposés être démarrés par les fichiers trouvés dans les répertoires /etc/rc?.d/ ces fichiers ont alors un lien symbolique vers les fichiers correspondants dans le répertoire /etc/init.d/. Si vous souhaitez qu'un service ne démarre pas par défaut, vous pouvez le renommer/supprimer du répertoire /etc/rc?.d et votre modification sera conservée lors de la mise à niveau du package tant qu'un des liens de démarrage apparaît toujours dans l'un des les autres répertoires (3,4 et 5). Ou vous pouvez utiliser la commande update-rc.d pour modifier le (s) lien (s) et si vous souhaitez démarrer le service après, vous pouvez utiliser /etc/init.d/service_name start si vous laissez le début à la fin, il le fera vous donne les options qui peuvent être utilisées comme arrêter, redémarrer, recharger ...
Je pense que vous pouvez cependant utiliser sysv-rc-conf pour le désactiver.
Sudo update-rc.d SERVICE disable
Si vous souhaitez spécifier des niveaux d'exécution.
Sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]
N'oubliez pas de remplacer service par le nom du programme.
Sudo service SERVICE restart