2014-07-04 3 views
0

Я установил и (надеюсь), сконфигурированный монит создания новой задачи в /etc/monit.d (на CentOS 6.5)монит не запускается скрипт Node

мой файл задача называется test:

check host test with address 127.0.0.1 
    start program = "/usr/local/bin/node /var/node/test/index.js" as uid node and gid node 
    stop program = "/usr/bin/pkill -f 'node /var/node/test/index.js'" 
    if failed port 7000 protocol HTTP 
     request/
     with timeout 10 seconds 
     then restart 

Когда я бежать:

service monit restart 

В моих журналах MONIT появляется:

[CEST Jul 4 09:50:43] info  : monit daemon with pid [21946] killed 
[CEST Jul 4 09:50:43] info  : 'nsxxxxxx.ip-xxx-xxx-xxx.eu' Monit stopped 
[CEST Jul 4 09:50:47] info  : 'nsxxxxxx.ip-xxx-xxx-xxx.eu' Monit started 
[CEST Jul 4 09:50:47] error : 'test' failed, cannot open a connection to INET[127.0.0.1:7000] via TCP 
[CEST Jul 4 09:50:47] info  : 'test' trying to restart 
[CEST Jul 4 09:50:47] info  : 'test' stop: /usr/bin/pkill 
[CEST Jul 4 09:50:47] info  : 'test' start: /usr/local/bin/node 

Я не понимаю, почему скрипт не работает, если я запустить его из командной строки с:

su node # user created for node scripts 
node /var/node/test/index.js 

все работает правильно ...

Я следовал this tutorial.

Как исправить эту проблему? Спасибо

+0

ли сбой монит, чтобы начать процесс, или это просто не в состоянии ответить на HTTP порт 7000 ? –

+0

Такая же проблема для меня в ubuntu 12. Я разрешаю это с помощью upstart https://codeplease.wordpress.com/2013/09/27/deploying-node-js-production/ – duckegg

+0

Я использовал PM2, это отличный инструмент для управлять приложениями Node.js –

ответ

3

То же самое было не для меня, то, что я сделал, был создан сценарий начала/остановки и передал этот сценарий в start program & stop program параметр в monit.
Вы можете нашли образец старт/стоп скрипт here
Ниже моя установка монит для Node.js приложения

check host my-node-app with address 127.0.0.1 
    start program = "/etc/init.d/my-node-app start" 
    stop program = "/etc/init.d/my-node-app stop" 
    if failed port 3002 protocol HTTP 
     request/
     with timeout 5 seconds 
     then restart 
    if 5 restarts within 5 cycles then timeout