Si j'installe un nouveau service, puis décide de ne plus utiliser cette application et le supprime, le service est toujours répertorié dans le résultat systemctl
sous forme d' erreur .
D'où vient-il et comment puis-je les éliminer complètement?
Ma recette pour le service oblitération (soyez prudent avec les rm
déclarations!)
systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] symlinks that might be related
systemctl daemon-reload
systemctl reset-failed
Il est possible que le service systemd «encapsule» les scripts de style ancien dans /etc/init.d; vous voudrez peut-être nettoyer cela également, mais ce n'est pas là que résident les services systemd.
/usr/lib/systemd/system
et aussi/etc/systemd/system/
. Pour référence, voir: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…/etc/init.d/[servicename]
avant de courirsystemctl reset-failed
systemctl cat [servicename]
.Vous recherchez probablement
reset-failed
:Depuis la page de manuel de systemd:
la source
On dirait que vous l'avez désinstallé, mais que vous n'avez pas supprimé le hook systemd:
# systemctl disable [servicename]
la source
En ajoutant à la réponse de @ mark-lakata et en gardant à l'esprit l'attention requise pour la
rm
commande.[chkconfig]
peut simplifier le processus! ( cliquez ici pour en savoir plus sur chkconfig )Pour réitérer la liste des commandes:
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
systemctl reset-failed
Remarque: La 1ère commande est facultative, selon que vous souhaitiez ou non que le service continue de fonctionner dans la session actuelle (la commande doit être utilisée pour cette question).
La 2ème commande permet de désactiver et de supprimer (en suivant les liens symboliques) le service.
la source
chkconfig
était la commande d'origine pour activer / désactiver les services SysVinit. Dans les systèmes utilisantsystemd
, il peut être présent en tant que commande de compatibilité ascendante; mais lasystemctl
commande native est aussi simple:systemctl disable [servicename]
Supprimer un service de systemd:
Systemd utilise unit (fichier pour définir les services) pour supprimer un service; l'unité doit être supprimée ... voici une liste des emplacements d'unités:
Actualiser systemd:
Services fantômes (non trouvés):
Systemd peut répertorier les services fantômes (non trouvés) même si l'unité est supprimée pour plusieurs raisons
(*) si un service est mentionné dans une autre unité mais n'existe pas, systemd listera quand même ce service avec l'état non trouvé, même s'il n'y a pas de fichier d'unité ... vous pouvez rechercher quelle unité utilise ce service avec une recherche de texte et éditez ces unités (non recommandé si vous prévoyez d'installer ce service ultérieurement)
la source