PM2进程守候

PM2

  1. PM2的核心价值(npm run prd 即可)

    1. 进程守护, 系统崩溃自动重启(一直重启)
    2. 启用多进程, 充分利用CPU和内存
    3. 自带日志记录功能(之前的console.log 和 console.error会自动记录在配置的文件内)
  2. PM2介绍

    1. 下载安装
      npm i pm2 -g 下载
      pm2 --version 查看版本

    2. 基本使用

      1. 配置启动命令: "prd": "cross-env NODE_ENV=dev pm2 start ./app.js"
      2. 启动完, 会告知pm2配置, 且交还控制台(nodemon会在前台运行)
    3. 常用命令
      pm2 start ... 启动项目
      pm2 list 在控制台看到pm的配置列表
      pm2 restart / 根据appname/id(pm的配置列表有), 重启某个服务
      pm2 stop / 停止
      pm2 delete / 删除
      pm2 info / 服务信息
      pm2 log / 查看进程日志
      pm2 monit / 查看进程cpu和进程的信息

    4. 常用配置

      1. 新建pm2的配置文件(包括进程数量, 日志文件目录等)

            {
                "apps": {
                    "name": "pm2-server",  // 启动时候, 进程名称
                    "script": "app.js",    // 启动目录文件
                    "watch": true,         // 监听文件变化, 自动启动
                    "ignore_watch": [
                        "node_modules",    // 忽略node_modules
                        "logs"             // 忽略logs文件变化
                    ],
                    "instances": 4,        // 多进程
                    "error_file": "logs/err.log",   // 错误日志写入
                    "out_file": "logs/out.log",     // 输出日志
                    "log_date_formate": "YYYY-MM-DD HH:mm:ss"   // 输出日志时间格式
                }
            }
        
        pm2.png
    2. 修改pm2启动命令, 重启
        1. 修改启动命令: `"prd": "cross-env NODE_ENV=dev pm2 start pm2.conf.json"`
        2. 重启

    3. 访问server, 检查日志文件内容(日志文件是否生效)
        1. 就已经有访问记录

5. pm2的多进程

    1. 多进程优势, 单个进程内存的内存受限(内存充分使用), 充分发挥多核CPU的优势
    2. 多进程劣势, 数据不共享, redis解决
    3. 自动负载均衡, 具体表现在, 日志文件按照进程的响应不同, 生成多个日志文件

![pm2多进程.png](https://upload-images.jianshu.io/upload_images/4363630-1bc626c388518a5f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(PM2进程守候)