Назад | Перейти на главную страницу

supervisord не удалось запустить nagiosapi после перезагрузки, необходимо запустить перезагрузку вручную

У меня есть супервизор, чтобы запускать nagiosapi каждый раз при запуске сервера. API создал файл дампа состояния с именем status.dat, который будет периодически обновляться. Ниже приведен файл conf, который запускает api.

[program:nagapi]
directory = /home/nagapi
user = api
command = /bin/bash -c "source /home/nagapi/.virtualenvs/nagapi/bin/activate;    /home/nagapi/nagios-api/nagios-api"
stdout_logfile = /home/nagapi/supervisor_nagios-api_stdout.log
stderr_logfile = /home/nagapi/supervisor_nagios-api_stderr.log

Каждый раз, когда я перезапускаю сервер, супервизор не может запустить api. stderr.log утверждает, что не может найти файл status.dat, расположенный в / var / cache / nagios3.

Похоже, что файлы еще не были созданы, когда супервизор пытался запустить api в первый раз. Я говорю это потому, что если я перезагружу supervisorctl, все будет перезагружено нормально, и api будет работать нормально примерно через 50 секунд после завершения команды перезагрузки.

следует ли мне изменить параметр команды файла conf, чтобы проверить

Хорошо, я наконец понял это. В зависимости от количества отслеживаемых серверов может потребоваться некоторое время, чтобы status.dat стал доступен после перезапуска. Все, что мне нужно сделать, это дождаться, пока файл станет доступным. Я сделал это, добавив startsecs в моем конфигурационном файле супервизора для API. в моем случае 60 секунд, кажется, делают это.

Если вам интересно узнать подробности, я задокументировал эту проблему в мой блог.