Отредактируйте файл /etc/init/node.conf
и вставьте в него следующий код. Замените /opt/node_project/
на путь к вашему проекту. При редактировании этого файла вы должны быть пользователем root, поэтому откройте редактор с помощью sudo
.
description "Node server"
author "eagor"
# Stanzas
#
# Stanzas control when and how a process is started and stopped
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn
# When to start the service
start on runlevel [2345]
# When to stop the service
stop on runlevel [016]
# Automatically restart process if crashed
respawn
script
echo $$ > /var/run/node.pid;
exec node /opt/node_project/app.js
end script
post-stop script
rm -f /var/run/node.pid
end script
Теперь, когда вы создали конфигурацию Upstart для своего процесса, вы можете запустить его из командной строки:
$ sudo service node start
Upstart будет отслеживать ваш процесс и перезапускать его каждый раз, когда он выйдет из строя.
Он также перенаправляет журналы на /var/log/upstart/node.log
.
Навсегда
Вышеупомянутое работает напрямую с узлом и обходит Dokku. Похоже, что Upstart - не лучший способ справиться с этим.
Вам следует подумать об использовании модуля forever
. Добавьте forever
в зависимости вашего package.json. Затем в вашем Procfile используйте это: web: ./node_modules/forever/bin/forever app.js
person
Daniel
schedule
07.11.2014