Mam problem z ustaleniem, jak usunąć jednostki systemowe, które nie mają już plików. Nadal wydają się utrzymywać jakoś w systemie.
Stare uszkodzone jednostki, które próbuję usunąć:
core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
UNIT LOAD ACTIVE SUB DESCRIPTION
<E2><97><8F> [email protected] not-found failed failed [email protected]
<E2><97><8F> [email protected] not-found failed failed [email protected]
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'.
Pliki nie istnieją, ale przeładowanie nadal utrzymuje te jednostki:
core@ip-172-16-32-83 ~ $ systemctl list-unit-files [email protected]
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> [email protected] not-found failed failed [email protected]
<E2><97><8F> [email protected] not-found failed failed [email protected]
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'.
Nie mogę znaleźć powiązanych z nimi plików:
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 ~ $
Jak więc się ich pozbyć?
systemctl disable
, prawda?Odpowiedzi:
Polecenie, którego szukasz
systemctl reset-failed
źródło
disable
,daemon-reload
areset-failed
ale obsługa alias wyjdzie jaknot-found inactive dead
zawsze. Przeszukałem również dysk w poszukiwaniu czegokolwiek, co pasuje do nazwy usługi bez żadnych wyników.systemctl stop <service>
pracowałem dla siebie.reset-failed
można je wyczyścić.Kiedy systemd analizuje pliki definicji jednostek, bierze pod uwagę wszelkie inne powiązane jednostki wywoływane w pliku - niezależnie od tego, czy te inne jednostki istnieją, czy nie.
Kiedy jednostka pojawia się jako „nie znaleziono”, niekoniecznie jest to błąd - wiemy tylko, że definicja lokalnej jednostki twierdzi, że ma z nią jakiś związek. Ten związek może nie być tym, na którym nam zależy. Na przykład może to być
"Before:"
inna jednostka, ale nie używamy tej innej jednostki.źródło
Wygląda na to, że systemd utrzymuje linki, ale nie wie, co z nimi zrobić po usunięciu pliku jednostki.
Możesz spróbować usunąć je ręcznie
/etc/systemd/system/suspend.target.wants/
i takie, ale oczywiściesystemctl reset-failed
z poprzedniej odpowiedzi brzmi jak lepsza opcja.źródło