나는 모니터링되는 프로세스가 실행되는 것을 볼 수 있는 웹 인터페이스에 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"