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
は、古き良きinitスクリプトとは異なります。 man
ページによると、検索しているinit-scriptコマンドのような次のコマンドをサポートしています。
start
コマンドラインで指定された1つ以上のユニットを開始(アクティブ化)します。stop
コマンドラインで指定された1つ以上のユニットを停止(非アクティブ化)します。reload
コマンドラインにリストされているすべてのユニットに、構成を再ロードするように要求します。restart
コマンドラインで指定された1つ以上のユニットを再起動します。ユニットがまだ実行されていない場合は、開始されます。try-restart
ユニットが実行されている場合は、コマンドラインで指定された1つ以上のユニットを再起動します。ユニットが実行されていない場合、これは何もしません。 Red Hat initスクリプトとの互換性のために、condrestart
はこのコマンドと同等であることに注意してください。reload-or-restart
サポートされている場合は、1つ以上のユニットをリロードします。そうでない場合は、代わりに再起動してください。ユニットがまだ実行されていない場合は、開始されます。reload-or-try-restart
サポートされている場合は、1つ以上のユニットをリロードします。そうでない場合は、代わりに再起動してください。ユニットが実行されていない場合、これは何もしません。 SysV initスクリプトとの互換性のために、force-reload
はこのコマンドと同等であることに注意してください。したがって、これらのコマンドのグループは基本的にstart
、stop
およびreload
に要約されます。 start
とstop
はほとんどのサービスタイプに必要であるため(通常、サービスがそれらの1つをサポートしていないかどうかはわかっています)、特定のサービスかどうかを知ることができます。 reload
をサポートするかどうか。
ほとんどの場合、リロードまたは再起動する必要があります。次にsystemctl reload-or-restart nagios
を使用します。リロードのために実行されるコマンド(ある場合)を実際に見つけるには、そのサービスファイルを調べます。これは通常/lib/systemd/system/
または/usr/lib/systemd/system
にあり、$SERVICENAME.service
(あなたの場合はnagios.service
)という名前です。このファイルには、サービスを開始、停止、および場合によってはリロードするためのコマンド、つまりExecStart
、ExecStop
およびExecReload
が含まれています。これに興味がある場合は、grep ExecReload /lib/systemd/system/nagios.service
を実行して、サービスがリロードをサポートしているかどうかを確認できます。
TL; DR
systemctl
は基本的にstart
、stop
およびreload
をサポートします。サービスがリロードをサポートしているかどうかを確認するには、試してください。スクリプトなどで複数のサービスをリロードする必要がある場合は、reload-or-restart
を使用します。これにより、ExecReload
- commandが保存されている場合はサービスがリロードされ、そうでない場合は再起動されます。