# pm2
- 进程守护,自动重启
- 启动多进程,充分利用CPU+内存
- 自带日志记录功能
# 线上环境
- 服务器稳定性
- 充分利用服务器硬件资源,提高稳定性
- 日志记录
cnpm i pm2 -g
pm2 --version
{
"name": "pm2-test",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "cross-env NODE_ENV=dev nodemon app.js",
"prd1":"cross-env NODE_ENV=production pm2 start 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.18.9"
}
}
//如果不需要什么其他配置的pm2可以直接启动app.js
# pm常用命令
- pm2 start ... //启动
- pm2 list 启动列表
pm2 restart <AppName>/</id>重启
─────┬─────────────────┬───────────┬─────────┬────────┬────────┬───────┬────┬─────────┬─────┬──────┬───────┬──────────┐
│`id` │ `name` │ namespace │ version │ mode │ pid │ uptime│ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼─────────────────┼───────────┼─────────┼────────┼────────┼───────┼────┼─────────┼─────┼──────┼───────┼──────────┤
│ 0 │ pm2-test-server │ default │ 1.0.0 │ cluster│ 29404 │ 0 │ 2 │ stopped │ 0% │ 0b │ alipo │ enabled │
│ 1 │ pm2-test-server │ default │ 1.0.0 │ cluster│ 592 │ 0 │ 1 │ stopped │ 0% │ 0b │ alipo │ enabled │
│ 2 │ pm2-test-server │ default │ 1.0.0 │ cluster│ 32012 │ 0 │ 1 │ stopped │ 0% │ 0b │ alipo │ enabled │
│ 3 │ pm2-test-server │ default │ 1.0.0 │ cluster│ 30716 │ 0 │ 1 │ stopped │ 0% │ 0b │ alipo │ enabled │
└─────┴─────────────────┴───────────┴─────────┴────────┴────────┴───────┴────┴─────────┴─────┴──────┴───────┴───────────
pm2 stop <AppName>/</id>pm2 delete <AppName>/</id>pm2 info <AppName>/</id>信息pm2 log <AppName>/</id>日志- pm2 monit 可看见内存信息+日志,分析问题
# pm2配置
{
"apps": {
"name": "pm2-test-server",
"script": "app.js",
"watch": true,
"ignore_watch": [
"node_modules",
"logs"
],
"instances": 4,
"error_file": "logs/err.log",
"out_file": "logs/out.log",
"log_date_format": "YYYY-MM-DD HH:mm:ss"
}
}
log_date_format:日志配置时间戳