4

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

4

2 回答 2

5

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

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

然后从你的 shell 向它发送一个信号:

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

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

于 2013-07-03T13:09:50.037 回答
5

使用repl 模块。doco 中有一些示例完全符合您的需要:在应用程序的上下文中运行 JS 并返回输出。

于 2013-07-03T02:06:03.160 回答