从NodeJS捕获输出输出
为了完整起见,我已经添加了这个答案也。
您可以使用child_process.spawn
来产生一个进程并监视它的输出。但是,对于像尾巴,猫等不能持续运行的命令,只需使用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
});
var spawn = require('child_process').spawn,
tail = spawn('tail', ['-f', '/tmp/somefile']);
tail.stdout.pipe(process.stdout);
child_process模块well documented
您还可以运行['exec'](http://nodejs.org/api/child_process_exec_command_options_callback),它会为您收集'stdout'和'stderr'的整个输出。对于像'尾巴'这样的例子,它可以很好地工作。 (如果你有一个连续运行的脚本,监视输出流是一个更好的选择) – 2012-07-13 16:13:27
是我的脚本是连续的,例如'tail'或Google App Engine的'dev_appserver.py'。我会测试这个并回复你。 – 2012-07-15 15:14:34
这将在Windows上工作吗? – ANinJa 2017-03-15 11:15:44
那么,你需要附加到过程的标准输出......不知道你是否可以从node.js做到这一点。 – Bobby 2012-07-13 07:33:06
@Bobby是的,你可以,事实上很容易。参见'child_process'模块。 :) – 2012-07-13 16:12:45