如何在启动时启动node.js和supervisor?

4
在我的运行Ubuntu 11.10的开发VM上安装并设置好node.js后,我希望supervisor在需要时自动启动并调用和重新加载node.js。下面的代码片段在默认用户终端中运行良好,但我该如何让它在启动时运行呢?
cd /var/ && supervisor -w www www/myapp/app.js

谢谢

2个回答

8

Upstart加上monit可以很好地在启动时运行并保持节点进程的稳定。此外,您可以使用npm进行安装。这里有一个教程

我不确定为什么supervisor需要在启动时运行(逻辑上,唯一需要这样做的时间是上传新文件时),但我想可以通过创建一个新的upstart配置文件(使用上面相同的教程作为基础)来在启动时启动它:

#!upstart
description "myapp supervisor"
author      "you"

start on startup
stop on shutdown

script
    echo $$ > /var/run/supervise_yourprogram.pid
    // does it need root access? if so...
    // exec sudo -u username supervisor --restart-on-error myapp.js
    supervisor --restart-on-error myapp.js
end script

pre-stop script
    rm /var/run/supervise_yourprogram.pid
end script

我不确定你需要 monit,因为 supervisor 有自己的 --restart-on-error。

这里有一个完全不同的方法,使用一个包装器,你可以调用它代替你的 app.js。看起来非常有趣。


从我所了解的情况来看,Monit在节点目录发生更改时并不关心重新加载节点。对吧? - Industrial
哎呀!我把它读成了supervise,这与node-supervisor完全不同啊 :) 让我更新我的答案。 - Kato

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接