【发布时间】:2019-03-22 12:37:47
【问题描述】:
我正在尝试运行以下 shell 命令:
netstat -nat | grep 3000
最终
netstat -nat | grep 3000 | grep ESTABLISHED
根据https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options从Node.js获取使用spawn连接到特定端口的ip地址可见下图:
const netStat = spawn('netstat', ['-nat']);
const grep = spawn('grep', ['3000']);
netStat.stdout.on('data', (data) => {
grep.stdin.write(data);
});
console.log('Determining public ip\'s connected to port 3000');
grep.stdout.on('data', function(data){
console.log(data.toString());
});
但结果只是挂起,我做错了什么吗? 提前感谢您的帮助!
【问题讨论】:
-
处理所有事件,可能缺少来自
stderr的东西? -
为什么,你必须处理所有的事件? - 成功了
-
不是说你必须,抱歉 --- 它更多的是关于“希望这会告诉你它为什么失败”的声明,但我很高兴它修复了你的错误 LOL --- 你正在运行什么节点版本?
-
大声笑,不管怎样,我想我会留下它
-
我的猜测是它无法打开任何东西来管道输出到 stderr,所以它只是继续尝试永远
标签: node.js shell process stdout spawn