Использование Monit для мониторинга пользовательских демонов - PullRequest
6 голосов
/ 08 декабря 2011

У меня есть демон, написанный на PHP. Я использую следующую команду для вызова демона

php dojobs.php

когда я вызываю эту команду, демон работает бесконечно, потому что файл dojobs.php имеет следующий код

while(true)
{
   code here
}

У меня есть следующие вопросы:

  • Как мне использовать сервер Monit (на CENTOS linux 5.5) для мониторинга этого демона и перезапустить его, если он вышел из строя?
  • У меня есть следующий код внутри демона:

    exec ('nohup sendMail.php> / dev / null 2> & 1 & echo $!' ;, $ op);

(как мне убедиться, что команда nohup, описанная выше, работает правильно и что файл sendMail.php действительно выполняет свою работу?

Большое вам спасибо.

1 Ответ

2 голосов
/ 08 декабря 2011

Не знаком с Monit, поэтому не могу вам с этим помочь.Но вместо вызова exec() вы можете использовать расширение Process Control (pcntl _ * ()) для разветвления отдельных процессов и ожидания, пока они вернут код состояния родительскому процессу, чтобы он знал, успешно ли выполнено задание.завершено или нет.

...