无法让我的Upstart脚本在服务器重新启动时运行Node.js和Forever
我一直在设置我的服务器最近和今天我不得不重新启动它...然后我意识到我运行的所有Node应用程序都不是'不再运行。我使用Node Forever模块来保持应用程序正常运行,但后来我意识到我仍然需要在服务器重新启动或关闭并再次启动时启动它们。无法让我的Upstart脚本在服务器重新启动时运行Node.js和Forever
我一直在研究最好的方法来做到这一点,但我只是试图没有工作。我在我的Ubuntu Server 10.04LTS远程服务器上的/etc/init/
文件夹中创建了一个Upstart脚本,并尝试重新启动,并且它似乎没有任何操作。当我运行forever list
时没有任何东西被列出。
这里是我当前的Upstart脚本今天我尝试:
#/etc/init/myapp.conf
start on (local-filesystems and net-device-up IFACE=eth0)
stop on shutdown
script
exec sudo /usr/local/bin/node /var/www/myapp/myapp.forever.js
end script
我用永远在一个节点脚本我觉得它更容易配置它我多么希望。已经证实,如果我在脚本之外执行脚本,脚本运行得很好,但Upstart脚本本身有问题。它似乎与/etc/init/
文件夹中的所有其他Upstart脚本具有相同的权限。作为一个附加说明,我已经经历了几乎所有我可以在StackOverflow找到的答案,并且我已经将目前的脚本放在一起了。
UPDATE:
随着汤姆的回答,我现在已经尝试:
#/etc/init/myapp.conf
start on (local-filesystems and net-device-up IFACE=eth0)
stop on shutdown
exec sudo /usr/local/bin/node /var/www/myapp/myapp.forever.js
但它仍然没有工作。
所以我不知道为什么这是不运行时,我重新启动我的服务器。请帮忙!
您是否尝试过在没有启动脚本行的情况下执行此操作?
description "my server"
author "name"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on shutdown
#respawn if you were not using forever
exec sudo /usr/local/bin/node myapp.forever.js
来源:http://caolanmcmahon.com/posts/deploying_node_js_with_upstart
Hello @Tom。我尝试了你的建议,但仍然无法正常工作。我正在阅读你现在有用的链接......男人,这让我疯狂! – littlejim84 2012-03-10 13:48:39
这不是一件很快乐的设置。 upstart的工作方式是使用启动命令的进程ID启动进程运行它。永远JS的工作原理类似,它可能受Upstart的启发。
当你试图用upstart运行forever.js时,在你的upstart脚本中创建的永久进程在启动后立即退出。 Upstart计划让这个流程继续运行。
当我试图用暴发户永远运行时,我终结了五种不同的永远的过程,因为暴发户认为它没有永远开始,它重试了五次。
我选择在用户的crontab文件中使用@reboot语句,该文件将在服务器重新启动时永久执行。
@reboot forever start app.js
读物 - http://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/
你为何用永远呢?我通过Upstart直接运行节点可执行文件,它可以正常工作并重新启动。 – 2012-06-25 21:08:31
@hiteshjoshi为什么?这恐怕不是正确的答案。 – littlejim84 2012-09-24 06:35:12
我有同样的问题..我使用这个参考https:// www。exratione.com/2013/02/nodejs-and-forever-as-a-service-simple-upstart-and-init-scripts-for-ubuntu/ – 2013-11-22 10:23:02