pm2 是一個帶有負載均衡功能的 Node 應用的進程管理器。node
$ npm install pm2 -g // 全局安裝 $ pm2 --version // 查看版本
// 直接啓動 $ pm2 start app.js // 經過配置文件啓動 $ pm2 start app.js
$ pm2 list
修改代碼後須要執行:npm
$ pm2 restart <AppName>/<id> <!-- <AppName>/<id> 可經過 pm2 list 查看-->
$ pm2 stop <AppName>/<id>
$ pm2 delete <AppName>/<id>
pm2 info <AppName>/<id> // 查看進程詳細信息 pm2 log <AppName>/<id> // 查看進程日誌, 執行後,可進行線上調試,查看打印日誌 pm2 monit <AppName>/<id> // 打開監控 logs
根目錄下,新建空文件 /logs/err.log 和 /logs/out.logjson
新建配置文件 pm2.conf.jsonapp
pm2.conf.json:負載均衡
{ "apps": { "name": "pm2-test-server", // 起個進程名,即AppName "script": "app.js", // 啓動的入口文件(koa2項目中爲/bin/www.js) "watch": true, // 監聽文件變化,自動重啓 "ignore_watch": [ // 不須要監聽的文件 "node_modules", "logs" ], "instances": 4, // 設置多進程 "error_file": "logs/err.log", // 錯誤日誌存儲的文件 "out_file": "logs/out.log", // console.log()打印的都會放進去 "log_date_format": "YYYY-MM-DD HH:mm:ss" // 給每行日誌標記一個時間 } }
修改package.json:koa
{ "name": "pm2-test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "cross-env NODE_ENV=dev nodemon app.js", "prd": "cross-env NODE_ENV=production pm2 start pm2.conf.json" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { ... "cross-env": "^5.2.0", "nodemon": "^1.19.1" ... } }
配置完後,執行下面命令,便可啓動項目調試
$ npm run prd