システムサービスを開始/停止するには、monitrcのどのコマンドを使用できますか?

システムサービスを開始/停止するには、monitrcのどのコマンドを使用できますか?

私は監視されているプロセスが実行されているのを見ることができるWebインターフェースにmonitを使用するのが好きです。私は最近サーバーをUbuntu 16.04にアップグレードしましたが、systemdを使用しています。

他のすべてを実行しましたが、systemdを制御する正しいmonitコマンドが見つかりません...

/etc/init.d/process start私は何かをしましたstop。これは明らかにもう機能しないので、試してみました。

systemctl start processこれも機能しません。ここで何ができますか?私のモニターは下に貼り付けられています...(旧スタイル、14.04用)

check process nginx with pidfile /var/run/nginx.pid
    start program = "/etc/init.d/nginx start"
    stop program = "/etc/init.d/nginx stop"

check process sshd with pidfile /var/run/sshd.pid
    start program = "etc/init.d/ssh start"
    stop program = "etc/init.d/ssh stop"

答え1

これはRHEL / CentOS 7 / Ubuntu 18.04で動作します。

check process nginx with pidfile /var/run/nginx.pid
    start program = "/bin/systemctl start nginx"
    stop program = "/bin/systemctl stop nginx"

check process sshd with pidfile /var/run/sshd.pid
    start program = "/bin/systemctl start sshd"
    stop program = "/bin/systemctl stop sshd"

答え2

Monitは、すべてのパスが正規化されると期待しています。明らかにMonit制御ファイル(/etc/monit/monitrc)です。

systemctlこの場合、完全修飾パスを指定する必要があります。

で私が見つけるUbuntu 20.04 LTSために使用した正規化されたパスはです。which systemctl/usr/sbin/systemctl

したがって、下記のスニペットは私にとって効果的でした。

start program = "/usr/sbin/systemctl start nginx"
stop program = "/usr/sbin/systemctl stop nginx"

答え3

Ubuntu 16以降では、systemctlを使用してサービスを開始または停止できます。

check process nginx with pidfile /var/run/nginx.pid
    start program = "systemctl start nginx"
    stop program = "systemctl stop nginx"

check process sshd with pidfile /var/run/sshd.pid
    start program = "systemctl start sshd"
    stop program = "systemctl stop sshd"

関連情報