【发布时间】:2014-05-20 07:48:21
【问题描述】:
我们在 Ubuntu (13.10) 服务器上有一系列 node.js 脚本,我们希望尽可能多地保持和运行,并在服务器重新启动时自动重新启动。我们尝试了几种不同的技术,但还没有找到可行的解决方案。
设置:没有脚本在 80 端口上运行,而是在 8000 以上的端口上运行。
Node.js 文件当前在/usr/lib/sites/path/Node 中运行
我们已经使用 Forever 单独设置和运行它们,同时在特权(但不是 root)用户的上下文中运行,只需从包含脚本的文件夹的上下文中运行以下命令:
forever start server_process.js
我们希望在服务器启动时运行这些脚本,并在以后(如果需要)能够重新启动它们。
Upstart 听起来应该是解决方案,但我们还没有设法让它发挥作用。以下脚本启动,然后停止,但没有说明原因...
description "Our app"
version "1.0"
author "Nautilytics"
start on startup
stop on shutdown
expect fork
env FOREVER_PATH=/usr/bin/forever
env APPLICATION_DIRECTORY=/usr/lib/sites/path/Node
env APPLICATION_START=ourapp.js
env LOG_PATH=/var/log/ourapp.log
chdir /usr/lib/sites/path/Node
script
exec $FOREVER_PATH start --sourceDir $APPLICATION_DIRECTORY -f -v $APPLICATION_START >> $LOG_PATH 2&>1
end script
通过直接的尝试和错误,有几次我们能够得到错误,表明无法找到其他文件(ourapp.js 需要),好像chdir 没有工作或通过永远的开始。
【问题讨论】:
-
我们认为 forever 有点多余,在 upstart 中重生可以处理这个任务。
标签: node.js init upstart forever