【发布时间】:2017-06-18 00:22:08
【问题描述】:
我试图生成子进程 - vvp (https://linux.die.net/man/1/vvp)。在某个时间,我需要将 CTRL+C 发送到该进程。 我期待模拟会被中断,我会得到交互式提示。之后我可以通过向子进程发送命令来继续模拟。 所以,我尝试了这样的事情:
var child = require('child_process');
var fs = require('fs');
var vcdGen = child.spawn('vvp', ['qqq'], {});
vcdGen.stdout.on('data', function(data) {
console.log(data.toString())
});
setTimeout(function() {
vcdGen.kill('SIGINT');
}, 400);
在这种情况下,子进程已停止。
我也尝试了vcdGen.stdin.write('\x03') 而不是vcdGen.kill('SIGINT');,但它不起作用。
也许是因为 Windows? 有什么方法可以实现与我在 cmd 中获得的行为相同的行为吗?
【问题讨论】:
-
添加了 Windows 标签(对问题至关重要),因此不需要 cmd(并且 spawn 比子进程更具体)
-
@Richard 更不用说 cmd 根本不涉及 - 它只是一个命令处理器,与控制台子系统无关(当然,除了像其他任何控制台应用程序一样)。
标签: node.js windows spawn sigint