使用 pm2 模块将命令传递给 nodejs 服务器

Pass commands to nodejs server using pm2 module

我是 运行 使用 pm2 模块的 nodejs 服务器。我使用以下命令行在 putty 上启动我的服务器:

pm2 start app.js

我想将 "custom" 命令传递给服务器,例如 quitsave; load。我正在使用 stdin 这样做,我的代码看起来像:

process.stdin.resume();
process.stdin.setEncoding('utf8');

process.stdin.on('data', function (text) {
    if (text.trim() === 'quit') {
        // I do something here
    }
    if (text.trim() === 'save') {
        // I do another thing here
    }
    if (text.trim() === 'load') {
        // I do another thing here
    }
});

但是这段代码不适用于 pm2 模块。 pm2 进程碾压 stdin 进程(我不知道这样说对不对) 只听 pm2 命令。

所以我的问题是:如何将 "custom" 命令传递给服务器?

提前致谢

pm2 创建一个子进程来启动您的应用程序。因此,pm2 的标准输入不等于您的应用程序。所以很遗憾,目前您不能将 pm2 与标准输入一起使用。

然而,有一个未解决的问题计划解决这个问题。 https://github.com/Unitech/pm2/issues/2968

代码已实现,目前不在master中。如果你现在想要这个功能。您可以转到给定的提交并使用该版本的 pm2 来执行此操作。