使用 pm2 模块将命令传递给 nodejs 服务器
Pass commands to nodejs server using pm2 module
我是 运行 使用 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" 命令传递给服务器?
提前致谢
pm2 创建一个子进程来启动您的应用程序。因此,pm2 的标准输入不等于您的应用程序。所以很遗憾,目前您不能将 pm2 与标准输入一起使用。
然而,有一个未解决的问题计划解决这个问题。
https://github.com/Unitech/pm2/issues/2968
代码已实现,目前不在master中。如果你现在想要这个功能。您可以转到给定的提交并使用该版本的 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" 命令传递给服务器?
提前致谢
pm2 创建一个子进程来启动您的应用程序。因此,pm2 的标准输入不等于您的应用程序。所以很遗憾,目前您不能将 pm2 与标准输入一起使用。
然而,有一个未解决的问题计划解决这个问题。 https://github.com/Unitech/pm2/issues/2968
代码已实现,目前不在master中。如果你现在想要这个功能。您可以转到给定的提交并使用该版本的 pm2 来执行此操作。