Я использую montit для других процессов, которые мне нужно запустить, но у меня есть процесс, который не работает как демон, и я не могу понять, как контролировать его с помощью monit
Текущие версии monit позволяют сопоставлять строки процесса с помощью matching "string"
директива вместо PID ...
check process n2n-edge
matching "/usr/sbin/edge"
start program = "/root/tools/edge.87.server"
stop program = "/usr/bin/killall edge"
if 10 restarts within 11 cycles then timeout
if cpu usage > 95% for 11 cycles then restart
Вы можете проверить побочные продукты процесса.
Вы можете, например, отслеживать существование файла блокировки, время изменения каталога или что-то, что было изменено или создано вашим процессом.
Ты можешь использовать start-stop-daemon
и использовать --make-pidfile
возможность создать pidfile. Если это невозможно, вы можете напрямую проверить службу, например:
check host localhost with address 127.0.0.1
start program = "/etc/init.d/postfix start"
stop program = "/etc/init.d/postfix stop"
if failed port 25 protocol smtp then restart