pm2的简单使用

143 阅读2分钟
安装node
安装

npm install -g pm2

查看安装路径

whereis pm2

查看

pm2 list
pm2 delete all

停止/删除

pm2 stop/delete 进程名称/进程id

重启进程

pm2 restart app // 重启指定名称的进程
pm2 restart all // 重启所有进程

启动方式

  1. package.json 方式

    若无package.json文件,使用npm init 创建 packsge.json文件

    修改 scripts 里的 代码

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "start": "serve build -l 3000"
},

启动:

 pm2 start --name  进程名称
 or
 pm2 start   进程名称
  1. 直接命令行 启动
    pm2 start "serve -s build" --name 进程名称

    cd /项目目录下
    
    pm2 start serve --name 进程名称
   
    pm2 start --name 进程名称 npm -- run serve


  1. 启动node 入口文件
pm2 start app.js --name application1

// 在文件改变的时候会重新启动程序
pm2 start app.js --name application1 --watch
  1. 通过配置文件启动
    命令生产 模版
    pm2 init
    pm2 ecosystem
    会生成 ecosystem.config.js 文件
    pm2 start ecosystem.config.js / pm2 start 启动即可
{
    "apps": {
        "name": "express_project",       // 项目名          
        "script": "app.js",              // 执行文件
        "cwd": "./",                     // 根目录
        "args": "",                      // 传递给脚本的参数
        "interpreter": "",               // 指定的脚本解释器
        "interpreter_args": "",          // 传递给解释器的参数
        "watch": true,                   // 是否监听文件变动然后重启
        "ignore_watch": [                // 不用监听的文件
            "node_modules",
            "public"
        ],
        "exec_mode": "cluster_mode",     // 应用启动模式,支持 fork 和 cluster 模式
        "instances": "max",              // 应用启动实例个数,仅在 cluster 模式有效 默认为 fork
        "error_file": "./logs/app-err.log",         // 错误日志文件
        "out_file": "./logs/app-out.log",           // 正常日志文件
        "merge_logs": true,                         // 设置追加日志而不是新建日志
        "log_date_format": "YYYY-MM-DD HH:mm:ss",   // 指定日志文件的时间格式
        "min_uptime": "60s",                        // 应用运行少于时间被认为是异常启动
        "max_restarts": 30,                         // 最大异常重启次数
        "autorestart": true,                        // 默认为 true, 发生异常的情况下自动重启
        "restart_delay": "60"                       // 异常重启情况下,延时重启时间
        "env": {
           "NODE_ENV": "production",                // 环境参数,当前指定为生产环境
           "REMOTE_ADDR": ""               
        },
        "env_dev": {
            "NODE_ENV": "development",              // 环境参数,当前指定为开发环境
            "REMOTE_ADDR": ""
        },
        "env_test": {                               // 环境参数,当前指定为测试环境
            "NODE_ENV": "test",
            "REMOTE_ADDR": ""
        }
    }
}