使用forever運行nodejs應用


何為forever

forever可以看做是一個nodejs的守護進程,能夠啟動,停止,重啟我們的app應用。

官方的說明是說:

A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
// 一個用來持續(或者說永遠)運行一個給定腳本的簡單的命令行工具

Github地址:https://github.com/nodejitsu/forever
用途

forever的用途就是幫我們更好的管理我們node App服務,本質上就是在forever進程之下,創建一個node app的子進程。

比如,你有一個基於express的或者其他的一些個應用那么,它將會很方便你更新和操作你的服務,並且保證你服務能持續運行。

更好的一點就是每次更改文件,它都可以幫你自動重啟服務而不需要手動重啟。
安裝forever

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

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

后記

毋庸置疑,擁有了Github就擁有了世界。
參考

    https://github.com/nodejitsu/forever
    http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever
    https://github.com/nodejitsu/forever/issues/116

 

netstat -ntlp 查看端口使用情況

 


免責聲明!

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



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