从NodeJS捕获bash输出
是否可以使用node启动并继续捕获某个bash进程的输出?例如:假设我正在运行tail/some/file,我如何能够持续收听每一行打印的新行并对输出进行操作从NodeJS捕获bash输出,bash,node.js,Bash,Node.js,是否可以使用node启动并继续捕获某个bash进程的输出?例如:假设我正在运行tail/some/file,我如何能够持续收听每一行打印的新行并对输出进行操作 var spawn = require('child_process').spawn, tail = spawn('tail', ['-f', '/tmp/somefile']); tail.stdout.pipe(process.stdout); 子进程模块是 child_流程模块是为了完整性,我也添加了这个答案 您可以使用
var spawn = require('child_process').spawn,
tail = spawn('tail', ['-f', '/tmp/somefile']);
tail.stdout.pipe(process.stdout);
子进程模块是
child_流程模块是为了完整性,我也添加了这个答案 您可以使用child_process.spawn生成进程并监视其输出。但是,对于像tail、cat等不能长时间或连续运行的命令,您可以直接使用它,它将捕获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
});
为了完整起见,我也添加了这个答案 您可以使用child_process.spawn生成进程并监视其输出。但是,对于像tail、cat等不能长时间或连续运行的命令,您可以直接使用它,它将捕获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
});
嗯,您需要附加到流程的标准输出…不确定是否可以从node.js执行此操作。@Bobby是的,您可以,事实上非常容易。请参阅子进程模块:嗯,您需要附加到流程的标准输出…不确定是否可以从node.js执行此操作。@Bobby是的,您可以,事实上非常容易。请参阅子进程模块:您还可以运行,它将为您收集stdout和stderr的全部输出。举个例子,比如tail,它会很好的解决问题。如果您有一个连续运行的脚本,那么监视输出流是一个更好的选择。如果您的脚本是连续运行的,例如tail或googleappengine的dev_appserver.py。我将对此进行测试并返回给您。您也可以运行它,它将为您收集stdout和stderr的全部输出。举个例子,比如tail,它会很好的解决问题。如果您有一个连续运行的脚本,那么监视输出流是一个更好的选择。如果您的脚本是连续运行的,例如tail或googleappengine的dev_appserver.py。我会测试一下,然后再给你回复。