Nodejs Child Process: напишите в stdin из уже инициализированного процесса
Я пытаюсь запустить внешний процесс phantomjs
с помощью node child_process
, а затем отправить информацию в этот процесс после его инициализации, возможно ли это?
У меня есть следующий код:
var spawn = require('child_process').spawn,
child = spawn('phantomjs');
child.stdin.setEncoding = 'utf-8';
child.stdout.pipe(process.stdout);
child.stdin.write("console.log('Hello from PhantomJS')");
Но единственное, что я получил на stdout, - это начальное приглашение для консоли phantomjs.
phantomjs>
Итак, кажется, что child.stdin.write
не влияет.
Я не уверен, что могу отправить дополнительную информацию в phantomjs на исходный икру.
заблаговременно.
Ответы
Ответ 1
Вам нужно передать также символ \n
, чтобы заставить вашу команду работать:
var spawn = require('child_process').spawn,
child = spawn('phantomjs');
child.stdin.setEncoding('utf-8');
child.stdout.pipe(process.stdout);
child.stdin.write("console.log('Hello from PhantomJS')\n");
child.stdin.end(); /// this call seems necessary, at least with plain node.js executable