1. 程式人生 > >Nodejs學習筆記(十三)—PM2

Nodejs學習筆記(十三)—PM2

words .com 安裝 itl 生產環境 ima 端口 什麽 clas

簡介

  PM2

  pm2是一個內置負載均衡的node.js應用進程管理器(也支持Windows),其它的類似功能也有不少,但是感覺pm2功能更強,更值的推薦

  GitHub地址:https://github.com/Unitech/pm2

  API Docs:http://pm2.keymetrics.io/docs/usage/cluster-mode/

  NPM地址:https://www.npmjs.com/package/pm2 

  使用體會:   1.簡單易用、後臺運行、快速部署,常用到的命令就幾個   2.可輕松集群模式啟動   3.可以無宕機重暫應用程序,保持不斷連接的情況下輕松重載代碼   4.完善的日誌   5.自動停止不穩定的進程   6.保活應用程序   ….

pm2安裝

  官方安裝說明: http://pm2.keymetrics.io/docs/usage/quick-start/

npm install pm2 -g

  安裝成功如下圖

技術分享圖片

  查看版本

pm2 -v

  各平臺安裝方法一致

操作

  我這裏有個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下載。

文章來源:https://www.cnblogs.com/zhongweiv/p/pm2.html

Nodejs學習筆記(十三)—PM2