ノードを使用して、特定の bash プロセスからの出力を開始してキャプチャし続けることは可能ですか? 例: run だった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 に答える