Frage Wie entfernen Sie fehlende Systemeinheiten?


Ich habe Probleme herauszufinden, wie Systemeinheiten entfernt werden, die keine Dateien mehr haben. Sie scheinen immer noch irgendwie im System zu verweilen.

Die alten kaputten Einheiten, die ich entfernen möchte:

core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
  UNIT                       LOAD      ACTIVE SUB    DESCRIPTION
<E2><97><8F> firehose-router@02.service not-found failed failed firehose-router@02.service
<E2><97><8F> firehose-router@03.service not-found failed failed firehose-router@03.service

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

2 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

Die Dateien existieren nicht, aber ein Nachladen hat immer noch die folgenden Einheiten:

core@ip-172-16-32-83 ~ $ systemctl list-unit-files firehose-router@02.service
core@ip-172-16-32-83 ~ $ sudo systemctl daemon-reload
core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
  UNIT                       LOAD      ACTIVE SUB    DESCRIPTION
<E2><97><8F> firehose-router@02.service not-found failed failed firehose-router@02.service
<E2><97><8F> firehose-router@03.service not-found failed failed firehose-router@03.service

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

2 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

Es gibt keine mit ihnen verbundenen Dateien, die ich finden kann:

core@ip-172-16-32-83 ~ $ sudo find /var/run/systemd -name "*firehose-router*"
core@ip-172-16-32-83 ~ $ find /etc/systemd/ -name "*firehose-router*"
core@ip-172-16-32-83 ~ $ find /usr/lib/systemd/ -name "*firehose-router*"
core@ip-172-16-32-83 ~ $

Wie kann ich diese loswerden?


34
2018-06-19 18:00


Ursprung


Sie erwähnen es nicht, aber ich denke, es scheitert, wenn Sie es versuchen systemctl disable sie, richtig? - dawud
Es existiert nur mit 0. Es gibt nichts zu deaktivieren (es fehlt bereits / deaktiviert). - Andy Shinn
Ich habe alle hier vorgeschlagenen Lösungen (und darunter bis jetzt) ​​ausprobiert und neu gestartet und nichts hat funktioniert. Die Einheiten, die ich entfernen möchte, waren einmal installiert oder wurden versucht, sie zu installieren, und später wurde apt gelöscht. So offensichtlich entfernt apt clean die Konfiguration, die systemd übergeben wird. Es ist mir immer noch nicht klar, ob diese "nicht gefundenen" Einheiten irgendwelche Probleme verursachen. - Eliptical view
Ich vermute, dass ich möglicherweise Dateien in / var / lib / systemd / deb-systemd-helper-enabled / löschen kann, bin mir aber nicht sicher, ob ich damit etwas anfangen will. Ich habe anscheinend zwei Sackgassen dort: mariadb.service.dsh-auch und mysql.service.dsh-auch - Eliptical view
@Elipticalview Erstellen Sie eine Sicherungskopie dieser Dateien, nur für den Fall, und entfernen Sie diese anschließend? - gf_


Antworten:


Der Befehl, nach dem Sie suchen, ist systemctl reset-failed


61
2018-06-19 18:32



Vielen Dank! Ich weiß nicht, warum das für mich nicht offensichtlicher war ... - Andy Shinn
Dies half bei der endgültigen Bereinigung eines "echten" Dienstes, aber ich habe einen Alias-Dienst, der sich weigert, wegzugehen. Ich habe es versucht disable, daemon-reloadund reset-failed aber der Alias-Dienst kommt als not-found inactive dead immer. Ich suchte auch auf der Festplatte nach allem, was dem Dienstnamen ohne Ergebnisse entspricht. - Mark Lakata
Ich bin gerade in diese und hineingelaufen systemctl stop <service> hat für mich gearbeitet. - mpontillo
Gleiches gilt für Timer - sie müssen vorher gestoppt werden reset-failed kann sie aufräumen. - rustyx


Es scheint, dass Systemd Links verwaltet, aber nicht weiß, was mit ihnen zu tun ist, wenn Sie die Unit-Datei löschen.

Sie könnten versuchen, sie manuell zu entfernen /etc/systemd/system/suspend.target.wants/ und so, aber natürlich systemctl reset-failed von einer vorherigen Antwort klingt wie eine bessere Option.

$ cd /etc/systemd/system
$ sudo mv lock.service /tmp 
$ sudo systemctl disable lock.service
Failed to disable unit: No such file or directory
$ sudo mv /tmp/lock.service .
$ sudo systemctl disable lock.service
Removed /etc/systemd/system/suspend.target.wants/lock.service.

0
2018-03-29 12:39