как полностью удалить несуществующую службу из systemd/systemctl?
Ни файлов, ни символических ссылок, сервис не существует. Модуль systemctl не указан, юнит-файл не указан.
systemctl daemon-reload
systemctl reset-failed
systemctl reboot
0 loaded units listed.
цикл записи журнала:
Scheduled restart job, restart counter is at 2.
Failed to locate executable
Failed at step EXEC spawning
Main process exited, code=exited, status=203/EXEC
Failed with result 'exit-code'.
Где он хранится, как его удалить?
"скажите конкретно, что вы спрашиваете" - отключено, остановлено и удалено, но попытки запустить есть.
1 ответ
Поскольку не существует постоянного кэша модулей, которые могли бы передавать состояние при перезагрузках, единственный способ для модуля .service достичь момента попытки что-то выполнить — это если модуль существовал во время текущей загрузки, и аналогично его исходное задание запуска должно были выпущены во время текущей загрузки.
systemctl show -p FragmentPath
покажет расположение файлов, из которых был загружен модуль. Случаев может быть несколько:
Он существует в /etc/systemd/system или (/usr)/lib/systemd/system как обычный файл.
Ранее он существовал в /etc/systemd/system или (/usr)/lib/systemd/system во время текущей загрузки (в момент выдачи запроса на запуск), но с тех пор был удален – например, пакет был удален во время загрузки. Сервисный блок продолжает работать.
Он существует в /run/systemd/system как результат работы какой-либо другой службы, которая создает модули «на лету» во время загрузки системы.
Он существует в /run/systemd/generator как результат работы «генератора модулей» systemd, который запускается во время каждой загрузки и перезагрузки демона. Например, сценарии SysV /etc/init.d автоматически оборачиваются генератором в модули systemd.
Это «переходная единица», созданная посредством вызова D-Bus, например
systemd-run
.