PM2的安裝和使用簡介

一、簡介

PM2是node進(jìn)程管理工具,可以利用它來簡化很多node應(yīng)用管理的繁瑣任務(wù),如性能監(jiān)控、自動(dòng)重啟、負(fù)載均衡等,而且使用非常簡單。

二、前期必備

node 環(huán)境

npm

三、安裝

全局安裝

npm install -g pm2

四、入門教程

挑express應(yīng)用來舉例。一般我們都是通過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ù)(長時(shí)間監(jiān)測有可能會(huì)出現(xiàn)問題,這時(shí)需要重啟項(xiàng)目)

pm2 start ./bin/www –watch

五、常用命令

啟動(dòng)

參數(shù)說明:?

–watch:監(jiān)聽?wèi)?yīng)用目錄的變化,一旦發(fā)生變化,自動(dòng)重啟。如果要精確監(jiān)聽、不見聽的目錄,最好通過配置文件。

-i –instances:啟用多少個(gè)實(shí)例,可用于負(fù)載均衡。如果-i 0或者-i max,則根據(jù)當(dāng)前機(jī)器核數(shù)確定實(shí)例數(shù)目。

–ignore-watch:排除監(jiān)聽的目錄/文件,可以是特定的文件名,也可以是正則。比如–ignore-watch=”test node_modules “some scripts”“

-n –name:應(yīng)用的名稱。查看應(yīng)用信息的時(shí)候可以用到。

-o –output :標(biāo)準(zhǔn)輸出日志文件的路徑。

-e –error :錯(cuò)誤輸出日志文件的路徑。

–interpreter :the interpreter pm2 should use for executing app (bash, python…)。比如你用的coffee script來編寫應(yīng)用。?

完整命令行參數(shù)列表:地址

pm2 start app.js –watch -i 2

重啟

pm2 restart app.js

停止

停止特定的應(yīng)用。可以先通過pm2 list獲取應(yīng)用的名字(–name指定的)或者進(jìn)程id。

pm2 stop app_name|app_id

如果要停止所有應(yīng)用,可以

pm2 stop all

刪除

pm2 stop app_name|app_id?

pm2 stop all

查看進(jìn)程狀態(tài)

pm2 list

自動(dòng)重啟

pm2 start app.js –watch

*這里是監(jiān)控整個(gè)項(xiàng)目的文件

日志查看

除了可以打開日志文件查看日志外,還可以通過pm2 logs來查看實(shí)時(shí)日志。

pm2 logs

pm2 save # 記得保存進(jìn)程狀態(tài)

npm install pm2 -g

pm2 update

附pm2命令:

$ npm install pm2 -g? ? # 命令行安裝 pm2

$ pm2 start app.js -i 4? # 后臺(tái)運(yùn)行pm2,啟動(dòng)4個(gè)app.js

? ? ? ? ? ? ? ? ? ? ? ? # 也可以把'max' 參數(shù)傳遞給 start

? ? ? ? ? ? ? ? ? ? ? ? # 正確的進(jìn)程數(shù)目依賴于Cpu的核心數(shù)目

$ pm2 start app.js --name my-api # 命名進(jìn)程

$ pm2 list? ? ? ? ? ? ? # 顯示所有進(jìn)程狀態(tài)

$ pm2 monit? ? ? ? ? ? ? # 監(jiān)視所有進(jìn)程

$ pm2 logs? ? ? ? ? ? ? # 顯示所有進(jìn)程日志

$ pm2 stop all? ? ? ? ? # 停止所有進(jìn)程

$ pm2 restart all? ? ? ? # 重啟所有進(jìn)程

$ pm2 reload all? ? ? ? # 0 秒停機(jī)重載進(jìn)程 (用于 NETWORKED 進(jìn)程)

$ pm2 stop 0? ? ? ? ? ? # 停止指定的進(jìn)程

$ pm2 restart 0? ? ? ? ? # 重啟指定的進(jìn)程

$ pm2 startup? ? ? ? ? ? # 產(chǎn)生 init 腳本 保持進(jìn)程活著

$ pm2 web? ? ? ? ? ? ? ? # 運(yùn)行健壯的 computer API endpoint (http://localhost:9615)

$ pm2 delete 0? ? ? ? ? # 殺死指定的進(jìn)程

$ pm2 delete all? ? ? ? # 殺死全部進(jìn)程


參考文獻(xiàn):

https://www.cnblogs.com/bjgua/p/7656833.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容