使用forever管理nodejs應用


 1. forever介紹

forever是一個簡單的命令式nodejs的守護進程,能夠啟動,停止,重啟App應用。forever完全基於命令行操作,在forever進程之下,創建node的子進程,通過monitor監控node子進程的運行情況,一旦文件更新,或者進程掛掉,forever會自動重啟node服務器,確保應用正常運行。
 

 

代碼如下:
A simple CLI tool  for ensuring that a given script runs continuously (i.e. forever).
//  一個用來持續(或者說永遠)運行一個給定腳本的簡單的命令行工具
 
Github地址:https://github.com/nodejitsu/forever

 

 

 2. forever安裝

 

 
安裝forever
代碼如下:
//  記得加-g,forever要求安裝到全局環境下
sudo npm install forever -g
 
 
 

 3.forever使用說明

啟動相關
代碼如下:
//  1. 簡單的啟動
forever start app.js

//  2. 指定forever信息輸出文件,當然,默認它會放到~/.forever/forever.log
forever start -l forever.log app.js

//  3. 指定app.js中的日志信息和錯誤日志輸出文件,
//
  -o 就是console.log輸出的信息,-e 就是console.error輸出的信息
forever start -o out.log -e err.log app.js

//  4. 追加日志,forever默認是不能覆蓋上次的啟動日志,
//
  所以如果第二次啟動不加-a,則會不讓運行
forever start -l forever.log -a app.js

//  5. 監聽當前文件夾下的所有文件改動
forever start -w app.js
 

 

文件改動監聽並自動重啟
代碼如下:
//  1. 監聽當前文件夾下的所有文件改動(不太建議這樣)
forever start -w app.js
 
顯示所有運行的服務
代碼如下:
forever list
 

 

停止操作
代碼如下:
//  1. 停止所有運行的node App
forever stopall

//  2. 停止其中一個node App
forever stop app.js
//  當然還可以這樣
//
 forever list 找到對應的id,然后:
forever stop [id]
 

 

重啟操作
重啟操作跟停止操作保持一致。
代碼如下:
//  1. 啟動所有
forever restartall
 
開發和線上建議配置
代碼如下:
//  開發環境下
NODE_ENV=development forever start -l forever.log -e err.log -a app.js
//  線上環境下
NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js
 
上面加上NODE_ENV為了讓app.js辨認當前是什么環境用的。不加它可能就不知道哦?
 

 

一些注意點

 

有可能你需要使用unix下的crontab(定時任務)
這個時候需要注意配置好環境變量。
代碼如下:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

 

 

 forever命令行的中文解釋

子命令actions:

  • start:啟動守護進程
  • stop:停止守護進程
  • stopall:停止所有的forever進程
  • restart:重啟守護進程
  • restartall:重啟所有的foever進程
  • list:列表顯示forever進程
  • config:列出所有的用戶配置項
  • set <key> <val>: 設置用戶配置項
  • clear <key>: 清楚用戶配置項
  • logs: 列出所有forever進程的日志
  • logs <script|index>: 顯示最新的日志
  • columns add <col>: 自定義指標到forever list
  • columns rm <col>: 刪除forever list的指標
  • columns set<cols>: 設置所有的指標到forever list
  • cleanlogs: 刪除所有的forever歷史日志

配置參數options:

  • -m MAX: 運行指定腳本的次數
  • -l LOGFILE: 輸出日志到LOGFILE
  • -o OUTFILE: 輸出控制台信息到OUTFILE
  • -e ERRFILE: 輸出控制台錯誤在ERRFILE
  • -p PATH: 根目錄
  • -c COMMAND: 執行命令,默認是node
  • -a, –append: 合並日志
  • -f, –fifo: 流式日志輸出
  • -n, –number: 日志打印行數
  • –pidFile: pid文件
  • –sourceDir: 源代碼目錄
  • –minUptime: 最小spinn更新時間(ms)
  • –spinSleepTime: 兩次spin間隔時間
  • –colors: 控制台輸出着色
  • –plain: –no-colors的別名,控制台輸出無色
  • -d, –debug: debug模式
  • -v, –verbose: 打印詳細輸出
  • -s, –silent: 不打印日志和錯誤信息
  • -w, –watch: 監控文件改變
  • –watchDirectory: 監控頂級目錄
  • –watchIgnore: 通過模式匹配忽略監控
  • -h, –help: 命令行幫助信息

 更多幫助請參考:粉絲日志  http://blog.fens.me/nodejs-server-forever/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM