是否可以使用节点启动并继续捕获某个 bash 进程的输出?例如:假设我正在运行tail /some/file
,我怎样才能继续聆听打印的每一行新行并对输出采取行动?
问问题
6178 次
2 回答
9
var spawn = require('child_process').spawn,
tail = spawn('tail', ['-f', '/tmp/somefile']);
tail.stdout.pipe(process.stdout);
child_process 模块有据可查
于 2012-07-13T07:50:02.137 回答
6
为了完整起见,我也添加了这个答案。
您可以child_process.spawn
用来生成一个进程并监控它的输出。但是,对于不会长时间或连续运行的命令(如 tail、cat 等),您可以直接使用child_process.exec
它,它会捕获整个输出stdout
并stderr
一次性提供给您。
var cp = require("child_process");
cp.exec("tail /some/file", function (err, stdout, stderr) {
// If an error occurred, err will contain that error object
// The output for the command itself is held in stdout and stderr vars
});
于 2012-07-13T16:21:01.453 回答