it-swarm.com.de

So entfernen Sie systemd-Dienste

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?

144
emel

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.

237
Mark Lakata

Klingt so, als hättest du es deinstalliert, aber den systemd-Haken nicht entfernt:

# systemctl disable [servicename]

23
nerdwaller

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.

21
Vebjorn Ljosa

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:

  1. systemctl stop [servicename]
  2. chkconfig [servicename] off
  3. systemctl daemon-reload
  4. 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).

4
garlicFrancium

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

  1. einheit noch in einem der systemd-Verzeichnisse vorhanden
  2. das Gerät wird nicht beendet, aber in einem der Verzeichnisse systemd ist noch eine Dateiverbindung vorhanden
  3. der Dienst wird in anderen Einheiten verwendet. *

(*) 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)

0
intika