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

时间:2017-07-14 18:51:55

标签: node.js stdin pm2

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

pm2 start app.js

我想通过" custom"像quit这样的服务器命令; save; 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"命令到服务器?

提前谢谢

1 个答案:

答案 0 :(得分:0)

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

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

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