【问题标题】:Why does pm2 watch restart over and over?为什么pm2手表一遍又一遍地重启?
【发布时间】:2021-06-24 06:42:08
【问题描述】:

我已经使用pm2 工作了几个星期,使用--watch 标志没有任何问题。

然后今天,即使是最基本的 Node.js + Express.js 应用程序启动时,它也会不断地重新加载,永无止境。

命令:pm2 start server.js --watch(导致 pm2 id 为 0)。

server.js

const express = require('express');
const app = express();

app.listen(3000, () => {
    console.log('Server successfully started and listening at http://localhost:3000.');
});

我什至使用pm2 stop 0 --watch


在某些情况下,我注意到即使 pm2 实例已停止(甚至删除),端口仍保持打开状态。所以我一直在使用终端命令sudo lsof -iTCP -sTCP:LISTEN -n -P 列出打开的端口,并使用sudo kill -9 PID 来终止打开的端口。不知道为什么会这样。不确定这是否相关。

【问题讨论】:

  • 你试过检查pm2版本吗?也许更新它。是否有任何其他进程将文件写入该目录或某事?编辑器自动保存?
  • 我试过删除pm2并重新安装它,还是一样。我确实在 pm2 安装时遇到了一堆错误,例如 Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/pm2/node_modules/fsevents/.node-gyp'

标签: node.js express pm2


【解决方案1】:

我认为你应该创建一个 processes.json 并运行它。使用此选项更新它以进行运行和观看:

//processes.json:
{
  "apps" : [{
    "name": "express-app",
    "script": "server.js",
    "watch": ["server.js"],
    "ignore_watch": ["node_modules"],
    "watch_options": {
      "usePolling": true,
      "alwaysStat": true,
      "useFsEvents": false
    },
    "env": {
        "NODE_ENV": "development"
    }
  }]
}

把它放在你项目的根目录,然后运行你的 pm2:

pm2 start processes.json

【讨论】:

  • 这适用于然后我执行初始pm2 start processes.json,但是当我停止该实例并再次启动它时,它不会因任何更改而重新启动。我在这里错过了什么?
  • 检查您的应用是否修改了项目文件夹中的文件(例如日志文件)。如果启用了监视标志,则对任何文件的更改都会触发重新启动。为防止这种情况,请使用进程文件并在其中添加 watch_ignore 标志。以下是有关如何使用流程文件的文档:pm2.keymetrics.io/docs/usage/application-declaration/…
【解决方案2】:

我快疯了,因为我已经尽一切努力阻止 pm2 观看目录。最后,我只是删除了进程并重新开始。我认为我的错误是我第一次将watch: "." 设置为生态系统.config.js 中的属性。而且我猜无论我做什么,该设置都无法更改。所以到目前为止,这是我的生态系统.config.js:

module.exports = {
  apps : [{
    name: 'atelier',
    script: 'server/index.js',
    watch: false,
    ignore_watch: ["uploads/tempImage" ],
    instances: 'max',
    env_production: {
      NODE_ENV: 'production'
    }
  }]
};

【讨论】:

    猜你喜欢
    • 2015-02-14
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多