Выскочка Ubuntu не будет возрождаться

Это проблема, с которой я столкнулся в Ubuntu 11.04 с двумя созданными мной сценариями upstart для Node и Nginx. Я буду использовать Node здесь в качестве примера. Я использую довольно стандартную настройку, как в учебниках, таких как http://howtonode.org/deploying-node-upstart-monit:

start on started mountall
stop on shutdown

respawn
respawn limit 5 60

sudo -u username /usr/local/bin/node /path/to/app.js 2>&1 >> /var/log/node.log

Запускается нормально с "запустить приложение". Но затем я вручную убил процесс узла, чтобы принудительно перезапустить его, и, к сожалению, выскочка не возродила его. На самом деле выскочка не возродит его, что бы я ни делал. Он показывает следующее, при этом Node вообще не запускается:

> sudo start app
app start/running, process 15211
> sudo stop app
stop: Unknown instance: 
> sudo status app
app stop/waiting

person mahemoff    schedule 11.08.2011    source источник
comment
Вы останавливаете приложение и ждете, запустится ли оно автоматически, или вы имеете в виду перезапуск машины, а приложение не запускается?   -  person Chris Abrams    schedule 22.09.2011
comment
Остановить его автоматически, убив процесс.   -  person mahemoff    schedule 26.09.2011
comment
если вы не используете kill -9, узел получит TERM, который закроет его в обычном режиме; он возрождается только при аварийном завершении работы.   -  person Kato    schedule 02.12.2011


Ответы (1)


Попробуйте изменить часть кода sudo на приведенную ниже. Я знаю, что вы должны включить экспорт домой, хотя я не видел никакой документации, объясняющей, почему. Вы меняете там, где написано «sudo -u username», имя пользователя, под которым будет запускаться этот код, правильно? Вы также меняете путь к правильному местоположению app.js на сервере, верно?

script  
    export HOME="/root"  
    exec sudo -u username /usr/local/bin/node /path/to/app.js 2>&1 >> /var/log/node.log  
end script  

Я не уверен, поможет ли это, но я видел, как некоторые люди заменяют:

start on started mountall  

to

start on (local-filesystems and net-device-up IFACE=eth0)
person Chris Abrams    schedule 28.09.2011