web-dev-qa-db-ja.com

cronでsystemdサービスを停止するにはどうすればよいですか?

サービスを停止するはずの簡単なcrontabエントリがありますが、機能しません。

* * * * * systemctl stop nginx

私も試しました:

* * * * * /bin/systemctl stop nginx

それは、コマンドが示すsystemctlの場所ではないためです。

この行はrootユーザーで機能しますが、rootのcrontabでは機能しません。

そして、機能していないということは、サービスがシャットダウンされていないことを意味します。サーバーがまだ実行中であり、systemctl statusnginxがサーバーがアクティブであることを示していることを確認できます。

私は何が間違っているのですか?

2
Jimbotron

おそらく、cronにrootを使用するように指示していないためです。

* * * * * root /bin/systemctl stop nginx

Nginxのステータス(開始済みかどうか)に関係なく、コマンドは毎分実行されます

そうは言っても、nginxが決して開始されないようにすることが目標である場合は、単に無効にしないのはなぜですか?

systemctl disable nginx

==編集==

起動後もnginxが起動しないようにするために、コメントでAaronCopleyが指摘した良い点は次のとおりです。

systemctl mask nginx
5
Alex