2012-01-16 139 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