【问题标题】:How to get pm2 process to watch after it has been stopped/ restarted?如何让 pm2 进程在停止/重新启动后观看?
【发布时间】:2020-01-07 12:39:07
【问题描述】:

我的 pm2 进程开始使用其默认的生态系统文件结构:

ecosystem.config.js

module.exports = {
    apps: [{
        env: {
            NODE_ENV: "development"
        },
        error_file: "./logs/error.log",
        ignore_watch: ["logs", "node_modules"],
        log_date_format: "YYYY-MM-DD HH:mm:ss Z",
        name: "my-app",
        out_file: "./logs/output.log",
        script: "./server.js",
        watch: true
    }]
}

我以pm2 start ecosystem.config.js 开始该过程,并且工作正常,应用程序在文件更改时重新加载。

但是当我用pm2 stop ecosystem.config.js 停止进程,然后用pm2 start ecosystem.config.js 重新启动它时,尽管watching 的显示列是enabled,pm2 不会监视文件。

重新启动进程并让 watch 工作的唯一方法是删除 pm2 进程,然后重新启动一个新进程。

我是否缺少使stoprestart 与手表一起使用的东西?

谢谢。

【问题讨论】:

    标签: node.js pm2


    【解决方案1】:

    https://stackoverflow.com/users/7575111/nulldev

    watch_options: { “使用轮询”:真 } 作为一个试用环境,答案对我很有帮助,不需要我每次都重新启动应用程序

    【讨论】:

      【解决方案2】:

      pm2 watch & restart documentation 给出了答案(在第一次阅读时一定忽略了它):

      使用 --watch 重启将切换 watch 参数。

      看起来在已经存在的 pm2 实例上省略 --watch 标志不会切换 ecosystem.config.js 文件中的 watch 参数。 watch 参数仅在初始进程执行时切换,后续执行时不会切换。

      所以停止这个过程,然后用pm2 start ecosystem.config.js --watch 重新开始就可以了!

      【讨论】:

        【解决方案3】:

        尝试添加

        watch_options: {
            "usePolling": true
        }
        

        请看这里:http://pm2.keymetrics.io/docs/usage/watch-and-restart/

        这不是 PM2 特定的选项,而是 PM2 使用的chokidar 选项。
        这些选项的文档可以在here找到。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-25
          相关资源
          最近更新 更多