簡(jiǎn)介
PM2是nodeJS進(jìn)程管理工具,可以利用它來(lái)簡(jiǎn)化很多node應(yīng)用管理的繁瑣任務(wù)界赔,如性能jiank監(jiān)控丢习,自動(dòng)重啟,負(fù)載均衡等淮悼,而且使用是非常簡(jiǎn)單的咐低。
當(dāng)你要把你的獨(dú)立代碼利用全部的服務(wù)器上的所有 CPU,并保證進(jìn)程永遠(yuǎn)都活著敛惊,0 秒的重載渊鞋, PM2 是完美的。它非常適合 IaaS 結(jié)構(gòu),但不要把它用于 PaaS 方案(隨后將開(kāi)發(fā) Paas 的解決方案)锡宋。
主要特性
? 內(nèi)建負(fù)載均衡(使用 Node cluster 集群模塊)
? 后臺(tái)運(yùn)行 儡湾。
? 0 秒停機(jī)重載,維護(hù)升級(jí)的時(shí)候不需要停機(jī)执俩。
? 具有 Ubuntu 和 CentOS 的啟動(dòng)腳本 徐钠。
? 停止不穩(wěn)定的進(jìn)程(避免無(wú)限循環(huán))
? 控制臺(tái)檢測(cè)
? 提供 HTTP API
? 遠(yuǎn)程控制和實(shí)時(shí)的接口 API ( Nodejs 模塊,允許和 PM2 進(jìn)程管理器交互 )
準(zhǔn)備
1役首,node環(huán)境(確保您的電腦已經(jīng)安裝了nodeJS)
2尝丐,npm
安裝
使用npm全局安裝
npm i pm2 -g
使用
挑express應(yīng)用來(lái)舉例。一般我們都是通過(guò)npm start啟動(dòng)應(yīng)用衡奥,其實(shí)就是調(diào)用node ./bin/www爹袁。那么,換成pm2就是矮固。
注意失息,這里用了–watch參數(shù),意味著當(dāng)你的express應(yīng)用代碼發(fā)生變化時(shí)档址,pm2會(huì)幫你重啟服務(wù)(長(zhǎng)時(shí)間監(jiān)測(cè)有可能會(huì)出現(xiàn)問(wèn)題盹兢,這時(shí)需要重啟項(xiàng)目)
pm2 satart ./bin/www -watch
常用命令
-watch:監(jiān)聽(tīng)?wèi)?yīng)用目錄變化,一旦發(fā)生變化守伸,自動(dòng)重啟绎秒。
-i -instances:?jiǎn)?dòng)多少個(gè)實(shí)例,可用于負(fù)載均衡尼摹,如果-i 0或 -i max见芹,則根據(jù)當(dāng)前機(jī)器核數(shù)來(lái)確定實(shí)例數(shù)目。
-ignore-watch:排查監(jiān)聽(tīng)目錄/文件蠢涝,可以是特定文件名辆童,也可以是正則。
-n -name:應(yīng)用的名字惠赫,查看應(yīng)用信息把鉴。
-o -output:標(biāo)準(zhǔn)輸出日志文件路徑
-e -error:錯(cuò)誤日志文件輸出