PM2是node進程管理工具,能夠利用它來簡化不少node應用管理的繁瑣任務,如性能監控、自動重啓、負載均衡等,並且使用很是簡單。 node
$ npm install pm2 -g shell
# 啓動app.js應用程序 npm
$ pm2 start app.js json
# cluster mode 模式啓動4個app.js的應用實例, 4個應用程序會自動進行負載均衡 api
$ pm2 start app.js -i 4 數組
# 啓動應用程序並命名爲 "api" bash
$ pm2 start app.js --name="api" app
# 當文件變化時自動重啓應用 負載均衡
$ pm2 start app.js --watch 工具
# 啓動 bash 腳本
$ pm2 start script.sh
# 列表 PM2 啓動的全部的應用程序
$ pm2 list
# 顯示每一個應用程序的CPU和內存佔用狀況
$ pm2 monit
# 顯示應用程序的全部信息
$ pm2 show [app-name]
# 顯示全部應用程序的日誌
$ pm2 logs
# 顯示指定應用程序的日誌
$ pm2 logs [app-name]
# 中止全部的應用程序
$ pm2 stop all
# 中止 id爲 0的指定應用程序
$ pm2 stop 0
# 重啓全部應用
$ pm2 restart all
# 重啓 cluster mode下的全部應用
$ pm2 reload all
# Graceful reload all apps in cluster mode
$ pm2 gracefulReload all
# 關閉並刪除全部應用
$ pm2 delete all
# 刪除指定應用 id 0
$ pm2 delete 0
# 把名字叫api的應用擴展到10個實例
$ pm2 scale api 10
# 重置重啓數量
$ pm2 reset [app-name]
#啓動配置文件
$ pm2 start apps.json
範例文件:
{
"apps": [{
"name": "bob_test",
"cwd": "D:\\Practices\\Node\\PM2Demo",
"script": "app.js",
"log_date_format": "YYYY-MM-DD HH:mm Z",
"error_file": "node-app.stderr.log",
"out_file": "node-app.stdout.log",
"pid_file": "node-geo-api.pid",
"instances": 6,
"min_uptime": "200s",
"max_restarts": 10,
"max_memory_restart": "1M",
"cron_restart": "1 0 * * *",
"watch": false,
"merge_logs": true,
"exec_interpreter": "node",
"exec_mode": "fork",
"autorestart": false,
"vizion": false
}]
}
說明: