Я пытаюсь обернуть программу lftp в приложение node.js, используя child_process. Проблема в том, что lftp не записывает свой вывод в стандартный вывод, поэтому я не могу перехватить его вывод в node.js. Образец кода:
var proc = require('child_process').spawn('lftp', ['-p', port, '-u', username + ',' + password, host]);
proc.stdout.on('data', function (data) {
console.log('stdout:', data.toString('utf-8'));
});
proc.on('exit', function (code) {
console.log('process exited with code ' + code);
});
proc.stdin.write('ls');
// proc.stdin.end();
Если я раскомментирую строку, которая вызывает stdin.end() для дочернего процесса lftp, вывод команды ls появится в моем терминале, как и должно быть. Если я этого не сделаю, процесс просто зависнет и ничего не выводится.
Я также пытался использовать unbuffer, но, похоже, он больше не позволяет мне писать на стандартный ввод lftp. Он выводит обычный материал «[Разрешение адреса хоста...]», но не вывод команды ls.
Мой вопрос: что мне нужно сделать, чтобы иметь возможность взаимодействовать с lftp, используя child_process node.js?