数字海洋部署的Upstart node.js应用程序

我使用dokku (Docker驱动的mini-Heroku)将我的node.js应用程序部署到Digital Ocean。 该应用程序由Procfile( web: node app.js )中的命令启动。
如何用Upstart启动它,以便在崩溃后自动重启?

添加:
当我用git push dokku master部署的时候,我需要它是git push dokku master

编辑文件/etc/init/node.conf并放入下面的代码。将/opt/node_project/更改为项目的path。 编辑这个文件时需要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 

现在您已经为您的stream程创build了一个Upstartconfiguration,您可以从命令行启动它:

 $ sudo service node start 

新贵会监督你的过程,并会在任何时候重新启动它。

它还将日志redirect到/var/log/upstart/node.log

永远

上面的工作直接与节点,并会绕过Dokku。 看起来像Upstart不是处理这个问题的最好方法。

你应该考虑使用forever模块。 forever添加到你的package.json依赖。 然后在你的Procfile中使用这个: web: ./node_modules/forever/bin/forever app.js