Estou tendo problemas para descobrir como remover unidades systemd que não possuem mais arquivos. Eles ainda parecem permanecer no sistema de alguma forma.
As antigas unidades quebradas que estou tentando remover:
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'.
Os arquivos não existem, mas uma recarga ainda mantém essas unidades:
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'.
Não há arquivos relacionados a eles que eu possa encontrar:
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 ~ $
Então, como faço para me livrar deles?
systemctl disable
, certo?Respostas:
O comando que você procura é
systemctl reset-failed
fonte
disable
,daemon-reload
ereset-failed
mas o serviço apelido surge comonot-found inactive dead
sempre. Também procurei no disco por algo que corresponda ao nome do serviço sem resultados.systemctl stop <service>
trabalhei para mim.reset-failed
limpos.Quando o systemd analisa arquivos de definição de unidade, ele anota quaisquer outras unidades relacionadas chamadas no arquivo - se essas outras unidades existem ou não.
Quando uma unidade aparece como "não encontrada", não é necessariamente um erro - tudo o que sabemos é que uma definição de unidade local alega ter algum relacionamento com ela. Esse relacionamento pode não ser do nosso interesse. Por exemplo, poderia ser
"Before:"
outra unidade, mas não usamos essa outra unidade.fonte
Parece que o systemd mantém links, mas não sabe o que fazer com eles quando você exclui o arquivo da unidade.
Você pode tentar removê-los manualmente
/etc/systemd/system/suspend.target.wants/
, mas é claro quesystemctl reset-failed
de uma resposta anterior parece uma opção melhor.fonte