当前位置: 首页 > 工具软件 > pm2Manage > 使用案例 >

PM2进程管理

梁祯
2023-12-01

官网文档:http://pm2.keymetrics.io/docs/usage/quick-start/

简单介绍

pm2是一个进程管理工具
可以用来管理node进程,并查看node进程的状态,并且支持性能监控,进程守护,负载均衡等功能
安装

npm install -g pm2

常用命令

启动进程/应用
    pm2 start app.js
启动进程/应用 设置name
    pm2 start app.js --name test
启动 - cluster mode(设置负载均衡)
    pm2 start app.js -i 2
添加进程/应用
    pm2 start bin/test 
结束进程/应用
    pm2 stop test|id/all(结束所有进程/应用)
重启进程/应用
    pm2 restart test|id/all
删除进程/应用
    pm2 delete test|id/all
刷新,平滑重启,失败后退化到restart
    pm2 reload test|id
    pm2 reload all
查看 - 某个进程
    pm2 show/info test|id
查看进程/应用具体情况
   pm2 describe test
列出所有进程/应用
    pm2 list/l
查看进程/应用的资源消耗情况
    pm2 monit
更新 - 保存当前进程
    pm2 save
更新 - 下载
    npm install pm2 -g
更新 - 执行
    pm2 update
版本
    pm2 -v

pm2 watch文档:http://pm2.keymetrics.io/docs/usage/watch-and-restart/

配置文件配置监视

{
  "watch": ["server", "client"], //要监视的文件watch:可以是布尔值,数组,默认是:false
  "ignore_watch" : ["node_modules", "client/img"], //不监视的文件
  "watch_options": {  //监视配置
    "followSymlinks": false
  }
}

配置文件控制应用
(在项目根目录下添加pm2.json)

{
    "name": "manage",  //项目名称
    "script": "./bin/test", //要执行的脚本
    "cwd":"./", //项目所在目录
    "watch":[  //添加受监控的文件,以便自动更新
        "models",
        "routes"
    ]
}

静态文件服务器(sts)

(npm使用方法)
    npm install -g sts
    sts port

pm2 serve文档:http://pm2.keymetrics.io/docs/usage/expose/

(pm2使用方法)
    pm2 serve path port
    pm2 serve . 8001
或者
    pm2 serve . 8001 --name test --watch        

监控工具

monit

pm2 monit文档:http://pm2.keymetrics.io/docs/usage/monitoring/

pm2 monit

线上web方式的监控
登录 https://app.keymetrics.io

pm2 link ak sk

pm2 module文档: http://pm2.keymetrics.io/docs/advanced/pm2-module-system/

负载均衡

pm2 cluster文档:http://pm2.keymetrics.io/docs/usage/cluster-mode/
默认启动的是fork模式,只对应一个进程

pm2 start app.js --name test

支持负载均衡(单机基于多cpu内核的负载均衡)

pm2 start app.js --name test -i num

日志

日志文档:http://pm2.keymetrics.io/docs/usage/log-management/

查看所有日志

pm2 logs

查看某个进程/应用的日志

pm2 logs test

查看指定行数开始的日志

pm2 logs manage --lines 50

json格式查看日志

pm2 logs manage --json

输出配置

{
  "script"          : "app.js",
  "error_file"      : "err.log",
  "out_file"        : "out.log",
  "merge_logs"      : true,
  "log_date_format" : "YYYY-MM-DD HH:mm Z"
}

合并日志

{
  "log_file": "combined.outerr.log",
  "out_file": "out.log",
  "error_file": "err.log"
}

配置文件

配置文件启动

pm2 start config.js

常用的配置文件项:

pm2 config文档:http://pm2.keymetrics.io/docs/usage/application-declaration/

module.exports = {
    apps : [{
        //启动后的name,相当于:pm2 start app.js --name test
        name                 : 'test',
        //启动的入口
        script                : './app.js',
        // app.js的位置
        cwd                    : 'e:/works/test',
        // 负载均衡模式,使用2个核心,相当于:pm2 start app.js -i 2
        instances             : '2',
        exec_mode             : 'cluster',

        // 监听文件修改,相当于:pm2 start app.js --watch
        watch                : ['server'],
        ignore_watch        : ['server/fore'],

        // 最大内存占用,相当于:pm2 start app.js --max_memory_restart 20M
        max_memory_restart    : '100M',

        // 日志相关
        log_date_format        : 'YYYY-MM-DD HH:mm Z',
        error_file            : 'd:/error.log',
        out_file            : 'd:/out.log'
    }]
};

其他相关文档

状态管理:http://pm2.keymetrics.io/docs/usage/signals-clean-restart/
环境管理:http://pm2.keymetrics.io/docs/usage/environment/
部署管理:http://pm2.keymetrics.io/docs/usage/deployment/
进程通信:
http://pm2.keymetrics.io/docs/usage/process-metrics/
http://pm2.keymetrics.io/docs/usage/process-actions/

 类似资料: