Как узнать, какие команды применимы для службы с systemctl?
# systemctl reload nagios.service
failed to reload nagios.service: Job type reload is not applicable for unit nagios.service.
С помощью init.d вы можете запустить сценарий без команды и просмотрите информацию об использовании соответствующих команд:
# /etc/init.d/nagios
Usage: /etc/init.d/nagios {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}
systemctl
не похож на старые добрые сценарии инициализации. Согласно его странице man
, он поддерживает следующие команды, похожие на команды init-script, которые вы ищете:
start
Запуск (активация) одного или нескольких модулей, указанных в командной строке . stop
Остановить (деактивировать) один или несколько модулей, указанных в командной строке. reload
Запрашивает все модули, перечисленные в командной строке, перезагрузить их конфигурацию. restart
Перезапустить один или несколько единиц, указанных в командной строке. Если блоки еще не запущены, они будут запущены. try-restart
Перезапустите один или несколько блоков, указанных в командной строке, если блоки работают. Это ничего не делает, если агрегаты не работают. Обратите внимание, что для совместимости со сценариями инициализации Red Hat команда condrestart
эквивалентна этой команде. reload-or-restart
Перезагрузите один или несколько модулей, если они это поддерживают. Если нет, перезапустите их. Если блоки еще не запущены, они будут запущены. reload-or-try-restart
Перезагрузите один или несколько блоков, если они это поддерживают. Если нет, перезапустите их. Это ничего не делает, если агрегаты не работают. Обратите внимание, что для совместимости со сценариями инициализации SysV команда force-reload
эквивалентна этой команде. Таким образом, группа этих команд по существу сводится к start
, stop
и перезагружают
. Поскольку start
и stop
необходимы для большинства типов служб (и обычно вы знаете, поддерживает ли служба один из них), единственное, о чем вы можете захотеть узнать, - это если данная служба поддерживает перезагрузку
или нет.
В большинстве случаев вы хотите, чтобы она была либо перезагружена, либо перезапущена: затем используйте systemctl reload-or-restart nagios
. Чтобы действительно узнать, какая команда (если есть) выполняется для перезагрузки, вы можете заглянуть в ее служебный файл. Обычно его можно найти в / lib / systemd / system /
или / usr / lib / systemd / system
и называется $ SERVICENAME.service
(в вашем case nagios.service
). Этот файл содержит команды для запуска, остановки и, возможно, перезагрузки службы, а именно ExecStart
, ExecStop
и ExecReload
. Если вас это интересует, вы можете выполнить grep ExecReload /lib/systemd/system/nagios.service
, чтобы узнать, поддерживает ли служба перезагрузку или нет.
TL; DR
systemctl
по существу поддерживает start
, остановить
и перезагрузить
. Чтобы узнать, поддерживает ли Сервис перезагрузку, просто попробуйте. Если вам нужно перезагрузить несколько служб в сценарии или чем-то еще, используйте reload-or-restart
, который перезагружает службу, если в ней сохранена команда ExecReload
, в противном случае она перезапускается.