Я попытался создать дочерний процесс - vvp (https://linux.die.net/man/1/vvp). В определенный момент мне нужно отправить CTRL + C. Я ожидаю, что симуляция будет прервана, и я получу интерактивную подсказку. И после этого я могу продолжить симуляцию командой send для дочернего процесса. Итак, я пытался что-то вроде этого:Как отправить «CTRL + C» дочернему процессу в Node.js?
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
@Richard Не говоря уже о том, что cmd вообще не задействован - это всего лишь командный процессор и не имеет ничего общего с консольной подсистемой (помимо консольного приложения, как и любое другое, конечно). – Luaan