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