Centos7
Systemctl:找出哪些命令適用於服務
如何使用 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
和reload
。由於start
和stop
對於大多數服務類型都是必需的(並且您通常知道服務是否不支持其中之一),因此您唯一想知道的是給定服務是否支持reload
。大多數時候,您希望它重新載入或重新啟動:
systemctl reload-or-restart nagios
然後使用。要真正找出執行重新載入的命令(如果有),您可以查看其服務文件。這通常可以在/lib/systemd/system/
or中找到/usr/lib/systemd/system
並且被命名$SERVICENAME.service
(在你的情況下nagios.service
)。ExecStart
此文件包含用於啟動、停止和可能重新載入服務的命令,即ExecStop
和ExecReload
。如果您對此感興趣,您可以做一個grep ExecReload /lib/systemd/system/nagios.service
以了解服務是否支持重新載入。TL;博士
systemctl
基本上支持start
,stop
和reload
. 要了解服務是否支持重新載入,只需嘗試一下。如果您需要在腳本或其他內容中重新載入多個服務,請使用reload-or-restart
,如果服務儲存了 -command,它將重新載入服務ExecReload
,否則將重新啟動它。