2012-01-16 102 views
4

在运行Ubuntu 11.10的开发虚拟机上安装并设置node.js之后,我想让supervisor在启动时自动启动,在需要时调用并重新加载node.js。如何在启动时启动node.js + supervisor?

下面的代码片段在终端中由我的默认用户运行时效果很好,但是如何让它在启动时运行?

cd /var/ && supervisor -w www www/myapp/app.js 

感谢

回答

8

Upstart plus monit可以很好地工作,让所有的东西在启动时运行并保持节点进程。另外你可以使用npm来安装它们。 Here's a tut

我不确定为什么主管需要在启动时运行(在逻辑上,唯一需要这个时间的是你上传新文件的时间),但我想可以在启动时启动刚刚创建一个新的暴发户配置(使用上述基础相同啧啧):

#!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这种情况下,由于上司都有自己--restart-ON误差。

here's a whole different approach,使用一个包装器,你会调用,而不是你的app.js.它看起来很有趣。

+0

那么,从我所知道的情况来看,当节点目录中发生更改时,monit并不在乎重新加载节点。对? – Industrial 2012-01-16 16:22:32

+0

Gyah!我将它读作[监督](http://manpages.ubuntu.com/manpages/natty/man8/supervise.8.html),这是一个完全不同于节点主管的纱线:)让我更新我的答案。 – Kato 2012-01-16 21:07:14

+0

非常感谢加藤! – Industrial 2012-01-21 16:19:38