【问题标题】:Pass commands to nodejs server using pm2 module使用 pm2 模块将命令传递给 nodejs 服务器
【发布时间】:2017-07-15 08:54:17
【问题描述】:

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

pm2 start app.js

我想将“自定义”命令传递给服务器,例如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 命令。

所以我的问题是:如何将“自定义”命令传递给服务器?

提前谢谢你

【问题讨论】:

    标签: node.js stdin pm2


    【解决方案1】:

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

    但是,有一个问题悬而未决,计划解决此问题。 https://github.com/Unitech/pm2/issues/2968

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

    【讨论】:

    • 如何获取和使用该版本? (对不起新手问题)
    • 请注意,不使用主分支意味着它没有经过全面测试并且可能有很多错误。但是,如果您想继续,请克隆存储库。继续开发分支,然后编译模块并使用它。老实说,我认为只会使用普通节点来运行程序,直到 pm2 可以支持它。
    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 2017-11-30
    • 2019-09-10
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多