как полностью удалить несуществующую службу из 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.

Другие вопросы по тегам