私は監視されているプロセスが実行されているのを見ることができる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"