У меня проблемы с выяснением, как удалить системные модули, у которых больше нет файлов. Они все еще как-то задерживаются в системе.
Старые сломанные блоки, которые я пытаюсь удалить:
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'.
Файлы не существуют, но для перезагрузки все еще существуют следующие единицы:
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'.
Нет связанных с ними файлов, которые я могу найти:
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 ~ $
Так как мне избавиться от них?
systemctl disable
их, верно?Ответы:
Команда, которую вы ищете
systemctl reset-failed
источник
disable
,daemon-reload
и ,reset-failed
но служба псевдоним приходит , какnot-found inactive dead
всегда. Я также искал на диске все, что соответствует названию службы, но безрезультатно.systemctl stop <service>
работал на меня.reset-failed
можно будет их очистить.Когда systemd анализирует файлы определения единиц, он принимает к сведению любые другие связанные единицы, вызванные в файле - независимо от того, существуют ли эти другие единицы или нет.
Когда юнит обнаруживается как «не найденный», это не обязательно ошибка - все, что мы знаем, это определение локального юнита, которое утверждает, что имеет с ним некоторую связь. Эти отношения могут быть не теми, о которых мы заботимся. Например, это может быть
"Before:"
какой-то другой блок, но мы не используем этот другой блок.источник
Кажется, что systemd поддерживает ссылки, но не знает, что с ними делать при удалении файла модуля.
Вы можете попытаться удалить их вручную
/etc/systemd/system/suspend.target.wants/
, но, конечно,systemctl reset-failed
из предыдущего ответа звучит как лучший вариант.источник