Как происходить spawn в spawnSync?

Я делаю консоль bash используя node.js. Я имею использовать spawnSync вместо spawn. Â: Как я делаю для того, чтобы, когда случится нормативный объем производства, было выражено событие, это захватит и пошлет это клиенту через socket?

C¦digo с spawn ser¦ - в небольшое количество as¦-:

var spawn = require('child_process').spawn;
var shell = spawn('/bin/bash');

shell.stdout.on('data', function(data) {
   socket.emit('stdout', data);
});

socket.on('stdin', function(command) {
    shell.stdin.write(command+"\n") || socket.emit('disable');
});

Я нуждаюсь в том, чтобы знать, как делать что-то эквивалентным с spawnSync. Если вы нуждаетесь больше в коде, или что осветлил что-то, спросите без страха.

Edit: поскольку он объяснил, Густаво не является реальным делать это с spawnSync Â: Существует какой-то способ знать, закончилась ли команда (правильно или некорректно)? Случай состоит в том, что есть команды как cd, который они не выражают вышедшая, и я нуждаюсь в "чем-то" (будьте событием предпочтительно), что он показывал бы мне, что он закончился.

2
задан 24.04.2017, 00:35
1 ответ

Funci¦n child_process.spawnSync - s¦-ncrona, как это показывает Ваше имя. Равно как fs.readFileSync например, bloquearÃ: EventLoop до тех пор, пока он не закончит Ваш ejecuci¦n в stack. В случае spawnSync, EventLoop bloquearÃ: до тех пор, пока процесс не закроется .

Способ использования простой:

const command = spawnSync('ifconfig', ['eth0']);
// el resto de código se ejecutará cuando se termine el proceso
const outtext = command.output[1];
console.log(outtext); // imprime información de la interface de red
socket.broadcast(outtext);
1
ответ дан 24.11.2019, 09:42
  • 1
    Спасибо, поскольку ты объясняешь spawnSync, он не служит для того, чтобы сделать консоль bash. ¿ Ты знаешь о каком-то способе спорить, когда боевая группа без выхода из-за экрана, как cd он закончился? – Francisco Martin 23.04.2017, 21:09