繁体   English   中英

服务器重启时,无法让我的Upstart脚本运行Node.js和Forever

[英]Cannot get my Upstart script to run Node.js and Forever when server restarts

我最近一直在设置我的服务器,今天我不得不重新启动它...然后我意识到我运行的所有Node应用程序都不再运行了。 我正在使用Node Forever模块来保持应用程序运行,但后来我意识到我仍然需要在服务器重新启动或关闭并再次启动时启动它们。

我一直在研究这种方法的最佳方法,但我正在尝试的方法似乎并不奏效。 我在我的Ubuntu Server 10.04LTS远程服务器上的/etc/init/文件夹中创建了一个Upstart脚本,并尝试重新启动它似乎没有做任何事情。 当我forever list运行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

我在Node脚本中使用Forever,因为我发现它更容易配置它我想要的。 如果我在脚本之外执行此操作,则确认脚本运行正常,Upstart脚本本身有问题。 它似乎与/etc/init/文件夹中的所有其他Upstart脚本具有相同的权限。

另外需要注意的是,我已经完成了StackOverflow上几乎所有可以找到的答案,以及我如何将目前的脚本聚集在一起。

更新:

有汤姆的回答,我现在尝试过:

#/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

但它仍然无法正常工作。

因此,当我重新启动服务器时,我不知道为什么这不会运行。 请帮忙!

这不是一个非常快乐的设置。 upstart的工作方式是它使用start命令的进程id启动运行它的进程。 Forever JS的工作方式与此类似,可能受到了Upstart的启发。

当您尝试使用upstart运行forever.js时,您在upstart脚本中创建的永久进程会在启动后立即退出。 Upstart依赖于该流程继续运行。

当我试图用upstart永远奔跑时,我结束了五个不同的永远进程,因为暴发户认为它未能永远开始,并且重试了五次。

我选择在用户的crontab文件中使用@reboot语句,该文件将在服务器重启时永久执行。

@reboot forever start app.js

补充阅读 - http://www.cyberciti.biz/faq/linux-execute-cron-job-after-system-reboot/

你没有启动脚本行尝试这样做吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM