Node.js Forever

用Forever + NPM Start 來使Node.js程式 (如Ghost)在背景運作

Forever是用來使Node.js程式保持後台運作的指令工具(Command Line Tool)。就算你的程式發生錯誤,Forever也會自動幫你重新啟動,對網站(伺服器)這種要一直運行,不能關閉的程式來講非常實用。NodeJust.com(原本)是以Ghost來架設,正是使用Forever來保持後背台運作。

安裝Forever

Forever也是用NPM來安裝,最好使用全域安裝,這樣所有的Node.js程式都能使用。

npm install forever -g

-g表代global。

使用Forever運行Node.js程式(Ghost)

要使用Forever,首先要cd到Node.js程式所在目錄,例如我把Ghost放在以下目錄:

/var/www/nodejust.com/public_html/

所以首先要:

cd /var/www/nodejust.com/public_html

然後輸入:

forever start -c “npm start” ./

由於新版本的Node.js要求用:npm start來啟動程式,因此這裡不能用:

forever start index.js

而要用引號來把npm start連結起來。

結尾的./代表當前目錄,成功後會出現類似以下信息:

forever start -c “npm start” ./

warn: –minUptime not set. Defaulting to: 1000ms
warn: –spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: ./

查看Forever運行中的Node.js程式

要查看有哪些程式正在運行,可以用:

forever list

會出現類似以下信息:

forever list
info: Forever processes running
data: uid command script forever pid logfile uptime
data: [0] qv39 npm start 16758 16760 /root/.forever/qv39.log 0:0:18:37.721

可以看到正有一個command: npm start運作中。要查看有沒有發生什麼錯誤,可以打開這裡顯示的log檔案:/root/.forever/qv39.log。

Forever常用指令

以下是常用的Forever指令:

start 後台啟動一個程式(SCRIPT)
stop 停止一個後台運作中的程式(SCRIPT)
stopall 停止所有後台運作中的程式(SCRIPT)
restart 重新啟動一個後台運作中的程式(SCRIPT)
restartall 重新啟動所有後台運作中的程式(SCRIPT)
list 列出所有後台運作中的程式(SCRIPT)

參考連結:

Image Credit: Ales Krivec

No comment yet, add your voice below!


Add a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Comment *
Name *
Email *
Website

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料