Wenn ich einen neuen Dienst installiere und entscheide, dass ich diese Anwendung nicht mehr möchte, und ihn lösche, wird der Dienst in der Ausgabe von systemctl
weiterhin als error aufgeführt.
Woher kommt das und wie kann ich sie gründlich entfernen?
Mein Rezept für Service-Auslöschung (Vorsicht mit den rm
-Anweisungen!)
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
Es ist möglich, dass der systemd-Dienst die Skripte im alten Stil in /etc/init.d 'umschließt', daher möchten Sie vielleicht auch das aufräumen, aber das ist nicht , wo systemd-Dienste leben.
Klingt so, als hättest du es deinstalliert, aber den systemd-Haken nicht entfernt:
# systemctl disable [servicename]
Sie suchen wahrscheinlich nach reset-failed
:
$ Sudo systemctl reset-failed
$
Aus der systemd-Manpage:
reset-failed [PATTERN...]
Setzen Sie den Status "Fehlgeschlagen" der angegebenen Einheiten zurück, oder setzen Sie den Status aller Einheiten zurück, wenn kein Einheitenname übergeben wird. Wenn eine Einheit auf irgendeine Weise ausfällt (dh der Prozess wird mit einem Fehlercode ungleich Null beendet, wird abnormal beendet oder es tritt eine Zeitüberschreitung auf), wechselt sie automatisch in den Status "Fehlgeschlagen", und ihr Beendigungscode und Status werden vom Administrator bis zum Service zur Überprüfung aufgezeichnet wird mit diesem Befehl neu gestartet oder zurückgesetzt.
Ergänzen Sie die Antwort von @ mark-lakata um die Aufmerksamkeit, die für den Befehl rm
erforderlich ist. [chkconfig]
kann den Prozess vereinfachen! ( hier klicken, um mehr über chkconfig zu erfahren )
So wiederholen Sie die Liste der Befehle:
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
systemctl reset-failed
Hinweis: Der 1. Befehl ist optional, je nachdem, ob der Dienst in der aktuellen Sitzung ausgeführt werden soll oder nicht (für diese Frage sollte der Befehl verwendet werden).
Der 2. Befehl kümmert sich sowohl um das Deaktivieren als auch das Entfernen des Dienstes (gemäß den symbolischen Links).
Entfernen eines Dienstes von systemd:
Systemd verwendet unit (Datei zum Definieren von Diensten), um einen Dienst zu entfernen. Die Einheit muss entfernt werden. Hier ist eine Liste der Einheitenstandorte:
/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)
System aktualisierend:
systemctl daemon-reload
systemctl reset-failed
Ghost Services (nicht gefunden):
Systemd kann Ghost-Dienste (nicht gefunden) auflisten, auch wenn das Gerät aus verschiedenen Gründen gelöscht wurde
(*) Wenn ein Dienst in einem anderen Gerät erwähnt wird, aber nicht existiert, listet systemd diesen Dienst immer noch mit dem Status nicht gefunden auf, auch wenn es keine Gerätedatei gibt ... Sie können mit einer Textsuche suchen, welches Gerät diesen Dienst verwendet und bearbeiten Sie diese Einheiten (nicht empfohlen, wenn Sie diesen Dienst später installieren möchten)