簡(jiǎn)介
pm2是一個(gè)帶有負(fù)載均衡功能的應(yīng)用進(jìn)程管理器搀擂,類(lèi)似有Supervisor娜汁,forever际长。
安裝
npm install pm2@latest -g
PM2常用命令
假設(shè)你現(xiàn)在已經(jīng)寫(xiě)好了一個(gè)app.js的文件餐屎,需要啟動(dòng)场靴,你可以使用pm2進(jìn)行管理
1.啟動(dòng)
# pm2 start app.js
# pm2 start app.js --name my-api #my-api為PM2進(jìn)程名稱(chēng)
# pm2 start app.js -i 0 #根據(jù)CPU核數(shù)啟動(dòng)進(jìn)程個(gè)數(shù)
# pm2 start app.js --watch #實(shí)時(shí)監(jiān)控app.js的方式啟動(dòng),當(dāng)app.js文件有變動(dòng)時(shí)忠怖,pm2會(huì)自動(dòng)reload
參數(shù)說(shuō)明:
- --watch:監(jiān)聽(tīng)?wèi)?yīng)用目錄的變化呢堰,一旦發(fā)生變化,自動(dòng)重啟脑又。如果要精確監(jiān)聽(tīng)暮胧、不見(jiàn)聽(tīng)的目錄锐借,最好通過(guò)配置文件。
- -i --instances:?jiǎn)⒂枚嗌賯€(gè)實(shí)例往衷,可用于負(fù)載均衡钞翔。如果-i 0或者-i max,則根據(jù)當(dāng)前機(jī)器核數(shù)確定實(shí)例數(shù)目席舍。
- --ignore-watch:排除監(jiān)聽(tīng)的目錄/文件布轿,可以是特定的文件名,也可以是正則来颤。比如--ignore-watch="test node_modules "some scripts""
- -n --name:應(yīng)用的名稱(chēng)汰扭。查看應(yīng)用信息的時(shí)候可以用到。
- -o --output <path>:標(biāo)準(zhǔn)輸出日志文件的路徑福铅。
- -e --error <path>:錯(cuò)誤輸出日志文件的路徑萝毛。
- --interpreter <interpreter>:the interpreter pm2 should use for executing app (bash, python...)。比如你用的coffee script來(lái)編寫(xiě)應(yīng)用滑黔。
2.重啟
pm2 restart app.js
3.pm列表
pm2 list
4.停止
停止特定的應(yīng)用笆包。可以先通過(guò)pm2 list獲取應(yīng)用的名字(--name指定的)或者進(jìn)程id略荡。
pm2 stop app_name|app_id
如果要停止所有應(yīng)用庵佣,可以
pm2 stop all
5.刪除
pm2 delete app_name|app_id
如果要停止所有應(yīng)用,可以
pm2 delete all
其他
$ pm2 startup # 創(chuàng)建開(kāi)機(jī)自啟動(dòng)命令
$ pm2 save # 保存當(dāng)前應(yīng)用列表
$ pm2 describe name|id # 查看某個(gè)進(jìn)程的信息
開(kāi)機(jī)自啟
1.通過(guò)pm2 save保存當(dāng)前進(jìn)程狀態(tài)汛兜。
2.通過(guò)pm2 startup [platform]生成開(kāi)機(jī)自啟動(dòng)的命令巴粪。(記得查看控制臺(tái)輸出)
3.將步驟2生成的命令,粘貼到控制臺(tái)進(jìn)行粥谬,搞定肛根。