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 la sortie de systemctl
comme error .
D'où vient-il et comment puis-je les éliminer complètement?
Ma recette pour le service oblitération (soyez prudent avec les déclarations rm
!)
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 c'est pas où les services systemd sont actifs.
On dirait que vous l'avez désinstallé, mais que vous n'avez pas supprimé le hook systemd:
# systemctl disable [servicename]
Vous recherchez probablement reset-failed
:
$ Sudo systemctl reset-failed
$
Depuis la page de manuel de systemd:
reset-failed [PATTERN...]
Réinitialisez l'état "en échec" des unités spécifiées ou, si aucun nom d'unité n'est transmis, réinitialisez l'état de toutes les unités. Lorsqu'une unité tombe en panne de quelque manière que ce soit (processus sortant avec un code d'erreur différent de zéro, se terminant de manière anormale ou expirant), elle passe automatiquement à l'état "en échec" et son code de sortie et son statut sont enregistrés pour que l'introspection soit effectuée par l'administrateur est redémarré ou réinitialisé avec cette commande.
Ajouter à @ mark-lakata et garder à l'esprit l'attention requise pour la commande rm
. [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 souhaitez 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.
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:
/etc/systemd/system/ (and sub directories)
~/.config/systemd/user/ (and sub directories)
/usr/lib/systemd/ (and sub directories)
/etc/init.d/ (Converted old service system)
Actualiser le système:
systemctl daemon-reload
systemctl reset-failed
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)