Если я устанавливаю новый сервис, затем решаю, что больше не хочу это приложение, и удаляю его, сервис все равно будет указан в выводе systemctl
как ошибка .
Откуда это исходит и как я могу их полностью удалить?
Мой рецепт уничтожения сервиса (будьте осторожны с rm
высказываниями!)
systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] symlinks that might be related
systemctl daemon-reload
systemctl reset-failed
Возможно, что служба systemd «оборачивает» сценарии старого стиля в /etc/init.d, так что вы можете захотеть это тоже почистить, но это не то место, где живут службы systemd.
/usr/lib/systemd/system
а также/etc/systemd/system/
. Для справки см .: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…/etc/init.d/[servicename]
перед запускомsystemctl reset-failed
systemctl cat [servicename]
.Вы, вероятно, ищете
reset-failed
:Со страницы справочника systemd:
источник
Похоже, вы удалили его, но не удалили хук systemd:
# systemctl disable [servicename]
источник
Добавление к ответу @ mark-lakata и помнить о внимательности, необходимой для
rm
команды.[chkconfig]
может упростить процесс! ( нажмите здесь, чтобы прочитать о chkconfig )Чтобы повторить список команд:
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
systemctl reset-failed
Примечание: 1-я команда является необязательной в зависимости от того, хотите ли вы, чтобы служба работала в текущем сеансе или нет (для этого вопроса следует использовать команду).
Вторая команда заботится как об отключении, так и удалении (по символическим ссылкам) службы.
источник
chkconfig
исходная команда для включения / выключения служб SysVinit. В системах, использующихsystemd
это, оно может присутствовать как команда обратной совместимости; но роднаяsystemctl
команда так же проста:systemctl disable [servicename]
Удаление службы из systemd:
Systemd использует unit (файл для определения сервисов), чтобы удалить сервис, который необходимо удалить. Вот список местоположений юнитов:
Обновить systemd:
Призрачные сервисы (не найдены):
Systemd может перечислять побочные (не найденные) сервисы, даже если устройство удалено по многим причинам
(*) если служба упоминается в другом модуле, но не существует, systemd по-прежнему перечисляет эту службу с состоянием not-found, даже если нет файла модуля ... вы можете найти, какой модуль использует эту службу, с помощью текстового поиска и отредактируйте эти модули (не рекомендуется, если вы планируете установить эту службу позже)
источник