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

не могу получить сценарий выскочки для программы node.js для запуска при запуске

Я сделал довольно простой сценарий запуска для моей программы node.js, которая должна запускаться при запуске:

start on startup
stop on shutdown

script
    exec sudo -u max WEBSITES_DIR=/home/max/websites/ /usr/local/bin/node /home/max/websites/server.js 2>&1 >> /var/log/node.log
end script

Если я использую:

sudo start my-program 

он работает, но когда я перезагружаю машину, я получаю сообщение об ошибке:

init: my-program main process (325) terminated with status 2

Кто-нибудь знает, как это отладить?

В startup Событие - это самое первое событие, которое генерируется в процессе загрузки Upstart. Есть много всего, чего еще не произошло - корневая файловая система по-прежнему будет смонтирована только для чтения, сеть не инициализирована и т. Д.

Я подозреваю, что задание завершается быстро, потому что все его зависимости (явные или неявные) еще не инициализированы. Я бы изменил начальное условие на что-то вроде

start on filesystem and started networking

По крайней мере, тогда вы сможете писать в свой лог-файл.

В качестве примечания: похоже, вы отменили аргументы перенаправления вывода - вы на самом деле имели в виду >> /var/log/node.log 2>&1. С помощью 2>&1 означает «взять то, что сейчас является fd 1, и сделать fd 2 таким же», но вы еще не изменили, что такое stdout.

HiMax,

Запуск node.js на сервере Ubuntu

more /etc/init/noded.conf

Файл выскочки Ubuntu по адресу /etc/init/noded.conf:

description "noded.conf"

author      "ntbinh"

start on runlevel [2345]

stop on runlevel [06]

respawn

script

su - ubuntu -c "NODE_ENV=test exec sudo /etc/init.d/noded start"

end script

Ты уже /etc/init.d/noded. Вы можете редактировать /etc/init/noded.conf ==> загрузка при запуске:

 # Ubuntu upstart file at `/etc/init/noded.conf`


 description "noded.conf"
 author      "ntbinh"

 respawn

 start on runlevel [2345]

 stop on runlevel [06]

 script

 su - ubuntu -c "NODE_ENV=test exec sudo /usr/bin/nohup /usr/bin/node /home/ubuntu/server.js" >> /home/ubuntu/log.log 

 end script

В моем случае аналогичная ошибка была вызвана попыткой запустить сценарий из моего сценария-выскочки, которого на самом деле не существовало. Оказалось, что я забыл зафиксировать и запустить скрипт.