【发布时间】:2012-03-27 14:53:38
【问题描述】:
我最近一直在设置我的服务器,今天我不得不重新启动它......然后我意识到我运行的所有 Node 应用程序都不再运行了。我正在使用 Node 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
我在 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
但是还是不行。
所以我不知道为什么当我重新启动服务器时它没有运行。请帮忙!
【问题讨论】:
-
你为什么要使用 Forever?我直接通过 Upstart 运行节点可执行文件,它可以正常工作并重新启动。
-
@hiteshjoshi 为什么?恐怕这不是正确的答案。
-
我有同样的问题..我正在使用这个参考exratione.com/2013/02/…
-
我的问题原来与流浪者有关,所以我用这个 ref razius.com/2013/11/launching-services-after-vagrant-mount 修复了你没有指定,所以我想它是你正在玩的物理服务器,所以这并不相关。建议您尝试我上面评论中提到的方法,即永远使用命令行
标签: node.js restart init upstart ubuntu-server