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