# 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:日志配置时间戳
最后更新: 11/26/2020, 12:50:48 PM