将命令发送到正在运行的节点进程,从应用程序内部获取数据

时间:2013-07-03 00:21:05

标签: node.js

我在linux中的每个命令行启动一个node.js应用程序。 我看到该应用正在运行,例如通过输入“顶部”。 有没有办法将一些命令发送到正在运行的应用程序(可能是pid?)并从里面获取信息(可能会收听一些输入并返回请求的信息)?

2 个答案:

答案 0 :(得分:5)

使用repl module。 doco中有一些例子可以完全满足您的需求:在应用程序的上下文中运行JS并返回输出。

答案 1 :(得分:5)

一个简单的解决方案是使用过程信号。您可以为程序中的信号定义处理程序,以将某些数据输出到控制台(或写入文件或数据库,如果您的应用程序作为未附加到您可以看到的终端的服务运行):

process.on('SIGUSR1', function() {
  console.log('hello. you called?');
});

然后从你的shell发送信号:

kill --signal USR1 <pid of node app.js>

这将调用您在node.js应用程序中定义的信号处理程序。