PM2html
pm2是一個內置負載均衡的node.js應用進程管理器(也支持Windows),其它的相似功能也有很多,可是感受pm2功能更強,更值的推薦node
GitHub地址:https://github.com/Unitech/pm2
git
API Docs:http://pm2.keymetrics.io/docs/usage/cluster-mode/github
NPM地址:https://www.npmjs.com/package/pm2 web
官方安裝說明: http://pm2.keymetrics.io/docs/usage/quick-start/express
npm install pm2 -g
安裝成功以下圖npm
查看版本api
pm2 -v
各平臺安裝方法一致app
我這裏有個express的web項目:pm2sample,端口是11111負載均衡
啓動
pm2 start app.js
成功以下圖
這樣就能夠經過http://localhost:11111 來訪問
關閉
pm2 stop 0
爲何stop後是0? 從上圖能夠看出進程ID爲0,因此經過進程ID能夠關閉,而後這種方式不易記,下面我看看其它方式啓動和關閉
其它方式啓動/關閉
啓動項目,並命名一個應用程序名
pm2 start app.js --name test
啓動後結果以下圖,你能夠看到App name
根據App name關閉項目
pm2 stop test
能夠自行試一下效果,關閉成功!
從PM2中刪除
pm2 delete test
固然也能夠pm2 delete 進程ID
重載和重啓
當應用程序代碼有更新,能夠用重載來加載新代碼,也能夠用重啓來完成
pm2 reload test pm2 restart test
reload能夠作到0秒宕機加載新的代碼,restart則是從新啓動,生產環境中多用reload來完成代碼更新!
查看詳情
pm2 show test
輸出以下圖
經過查看詳情就能夠看到不少有用信息,包含日誌和錯誤輸出的文件路徑(感受日誌是用的比較多的)
多項目操做
上面是單項目操做,多項目操做是如何呢?
啓動其它項目也如上面命令,我新啓一個項目:pm2sample2(端口爲11112)
cd 項目目錄 pm2 start app.js --name test2
啓動後以下圖
想要對這2個項目進行批量操做(多個也同樣),以下(重加載所有/中止所有/重啓所有/刪除所有)
pm2 reload all pm2 stop all pm2 restart all pm2 delete all
上面從圖中能夠看出mode是「fork」
開發環境中多以fork的方式啓動,生產環境中多用cluster方式啓動
啓動方式
pm2 start app.js -i 2 --name test
這表示啓動2個並命名爲test,在後臺以cluster方式運行
從上圖能夠看出mode爲「cluster」方式,其它操做就能夠經過上面用過的方式去啓動、關閉、重載、重啓、刪除
watching
上面的示例圖中能夠看一「watching」一項,這個項默認是disabled,能夠經過以下命令開啓
pm2 start app.js --name test --watch
上面的命令中啓去吧了test項目並開啓了watching,這個用處主要更新代碼後,不用重載或重啓項目便可以當即讓更新的代碼起做用
建議:這個適合在開發時用,能夠省很多時間,生產環境下最好不要用
list
pm2 list
能夠列出pm2中全部項目
monit
pm2 monit
用monit能夠打開實時監視器去查看資源佔用狀況
logs
pm2 logs
經過上面命令能夠實時查看日誌輸出狀況(固然,我更習慣去日誌文件裏看)
本篇主要對PM2經常使用命令進行說明
PM2還有其它不少其它功能,能夠經過上面提供的api連接去查看
可是基本用上面這些命令就夠了,如今項目中就用的PM2,感受仍是不錯,用於生產環境徹底沒問題!
此係列的源代碼可到http://bijian1013.iteye.com/blog/2425085下載。