1阵翎、PM2是什么
? ? ? ? PM2 是一個(gè)帶有負(fù)載均衡功能的 Node 應(yīng)用的進(jìn)程管理器轻绞。我們都知道nodejs是單進(jìn)程執(zhí)行的抱怔,當(dāng)程序出現(xiàn)錯(cuò)誤死掉之后需要能夠自動(dòng),這時(shí)候就需要PM2了立肘。當(dāng)然進(jìn)程管理工具有很多边坤,例如forever等等名扛;
2谅年、主要特性
? ? 1)啟動(dòng)多子進(jìn)程,充分使用CPU
? ? 2)子進(jìn)程之間負(fù)載均衡
? ? 3)0秒重啟
? ? 4)界面友好
? ? 5)提供進(jìn)程交互(例如:監(jiān)控)接口
3肮韧、安裝
npm install pm2 -g
4融蹂、使用
pm2 start app.js -i 4 -n customer? ?//-i 4啟動(dòng)4個(gè)進(jìn)程 -n customer指定進(jìn)程名稱
pm2 list? //查看進(jìn)程狀態(tài)
pm2 info?customer //查看單個(gè)進(jìn)程的詳細(xì)啟動(dòng)信息
pm2 logs?customer? ?//查看實(shí)時(shí)日志
pm2?restart? all ||?customer?//直接重啟進(jìn)程
pm2 reload?customer? //0秒停機(jī)重啟進(jìn)程
pm2 gracefulReload?customer? //等待網(wǎng)絡(luò)連接處理完之后重啟進(jìn)程;避免請(qǐng)求處理中斷導(dǎo)致可能的業(yè)務(wù)錯(cuò)誤
pm2 delete all|customer //刪除所有的或者指定的進(jìn)程
pm2 stop??all ||customer? //停止進(jìn)程,但是進(jìn)程仍然存在
pm2 monit? ? //監(jiān)控進(jìn)程信息
pm2 update //升級(jí)pm2之后需要升級(jí)老版本啟動(dòng)的進(jìn)程
pm2 start start.json //通過配置文件啟動(dòng)?
start.json示例
[{
????"name" : "project",? ? //進(jìn)程名稱
????"script" : "app.js",? ? //入口文件
????"exec_mode" : "cluster", //模式
????"instances" : 3,? ?//進(jìn)程實(shí)例個(gè)數(shù)
????"cwd" : "./project/",? //路徑
????"env": {? ?//環(huán)境變量
????????"NODE_ENV": "development",?
????????"DEBUG": "*", //打印debug日志
????????"DEBUG_FD" : 1 //debug日志默認(rèn)輸出到process.stderr弄企;該參數(shù)將日志輸出到process.stdout
????}
}]