Мне нужен daemon-reload после остановки, отключения и удаления файла службы в systemd?

Вопрос или проблема

У меня есть собственная служба. Я недавно перенес ее на systemd для RHEL7. Обычно я останавливаю, отключаю и удаляю файл службы. Этого достаточно или мне нужно сделать также

rm /etc/systemd/system/[имя услуги] символические ссылки, которые могут быть связаны
systemctl daemon-reload
systemctl reset-failed

из: https://superuser.com/a/936976/82754

Во-первых, чтобы остановить, отключить и удалить службу, вы должны использовать команды systemctl, такие как systemctl stop [имя службы], systemctl disable [имя службы], а затем rm [путь к службе]. Вы также можете использовать chkconfig [проверьте здесь] команду, но, как отмечено в одном из моих последних ответов пользователем, это теперь старая команда и может быть недоступна в новых системах!

Во-вторых, выполнение systemctl daemon-reload после вышеупомянутого – это хорошая практика.

Наконец, выполнение systemctl reset-failed не является обязательным, если ваша служба не терпела неудачу ранее. Ниже приведена страница man для systemd:

reset-failed [PATTERN…]

Сбросить состояние “неудачи” указанных единиц, или если название единицы не передано, сбросить состояние всех единиц. Когда единица терпит неудачу каким-то образом (т.е. процесс завершился с ненулевым кодом ошибки, завершился ненормально или истек срок), она автоматически войдет в состояние “неудачи”, и ее код выхода и статус будут записаны для проверки администратором, пока служба не будет перезапущена или сброшена с помощью этой команды.

Ответ или решение

Удаление пользовательского сервиса в системе, использующей systemd, требует четкого и последовательного подхода. После того как вы остановили и отключили сервис, а также удалили файл службы, остаётся вопрос необходимости выполнения дополнительных команд, таких как daemon-reload и reset-failed.

Остановка и отключение сервиса

Необходимо начать с остановки и отключения сервиса. Вы можете использовать следующие команды:

systemctl stop [servicename]
systemctl disable [servicename]

Эти команды остановят выполнение сервиса и предотвратят его автоматический запуск при загрузке системы.

Удаление файла службы

Следующим шагом является удаление файла службы. Это можно сделать с помощью команды rm. Например:

rm /etc/systemd/system/[servicename].service

Необходимость выполнения daemon-reload

После удаления файла службы очень важно выполнить команду systemctl daemon-reload. Эта команда обновляет систему для учета любых изменений, связанных с юнитами systemd. Если вы не выполните эту команду, systemd может продолжать считать, что служба всё ещё существует, что может привести к путанице и возможным ошибкам. В данном случае, выполнение команды:

systemctl daemon-reload

— это хорошая практика для обеспечения корректного состояния вашей системы.

Использование reset-failed

Команда systemctl reset-failed служит для сброса состояния "неудачи" у юнитов. Это состояние устанавливается, когда служба завершается с ошибкой или неожиданно останавливается, например, из-за сбоя в работе. Если у вашего сервиса не было предыдущих сбоев, вы можете не выполнять эту команду. Тем не менее, если вы хотите убедиться, что все записи об ошибках были устранены, выполнение:

systemctl reset-failed

может быть целесообразным.

Заключение

В резюме, после остановки, отключения и удаления сервиса, обязательно выполните systemctl daemon-reload для синхронизации состояния systemd с текущими файлами конфигураций. Использование systemctl reset-failed является опциональным и зависит от наличия сообщений об ошибках, связанных с вашим сервисом. Правильное удаление служб и механизмов управления ими поможет поддерживать сервер в рабочем состоянии и упрощает администрирование системы.

Таким образом, следование описанным шагам гарантирует, что вы эффективно управляете службами в вашей системе RHEL7, используя systemd.

Оцените материал
Добавить комментарий

Капча загружается...