시스템 서비스를 시작/중지하기 위해 monitrc의 어떤 명령을 사용할 수 있습니까?

시스템 서비스를 시작/중지하기 위해 monitrc의 어떤 명령을 사용할 수 있습니까?

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

관련 정보