乐趣区

关于pm2:PM2用监控模式实时更新Nodejs项目

一、问题简介

监控目录下所有文件,只有有文件更新就立即重启。


二、解决方案
1、--watch
  • 监控我的项目目录下所有文件,任意文件有改变,就主动重启 node.js 我的项目。

    # 1、装置 pm2
      npm install pm2 @latest -g
      # or
      yarn global add pm2
    
    # 2、转到 node.js 我的项目根目录下
      cd < 我的项目根目录 >
    
    # 3、用 pm2 启动 node.js 我的项目,我的项目目录下有文件改变就重启
      pm2 start app.js--watch
    
    # 当初就能够失常拜访 node.js 我的项目了,且能够查看我的项目状态
      pm2 list
      pm2 log
2、--ignore-watch
  • 能够去除一些不须要监控的目录或文件。

    # 监控除了  node_modules 目录以外文件
      pm2 start app.js --watch --ignore-watch="node_modules"
3、配置文件中设置监控的办法
  • 状况 1:监控和疏忽具体文件

    module.exports = {
        script: "app.js",
        // 监控这两个文件夹
        watch: ["server", "client"],
        // 监控工夫距离
        watch_delay: 1000,
        // 疏忽这两个文件夹
        ignore_watch: ["node_modules", "client/img"],
    }
  • 状况 2:监控我的项目目录下所有文件

    module.exports = {
        script: "app.js",
        watch: true
    }

三、restart 与 reload 区别
  • restart 会杀掉现有过程 并 启动新过程,服务会中断;
  • reload 不会杀掉现有过程,在现有过程从新加载,服务不会中断;

    # 只有 app_name 这个利用被 reload
      pm2 reload <app_name>
        
    # 配置文件中所有利用都被 reload
      pm2 reload process.json
        
    # 只有配置文件中的 api 利用被 reload
      pm2 reload process.json --only api

四、参考文档
  • PM2 用监控模式实时更新 Node.js 我的项目!
退出移动版