1

ノードを使用して、特定の bash プロセスからの出力を開始してキャプチャし続けることは可能ですか? 例: run だったtail /some/fileとします。出力されたすべての新しい行をリッスンし続け、出力を処理するにはどうすればよいでしょうか?

4

2 に答える 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で、出力全体をキャプチャしてstdoutstderr一度にすべてに提供します。

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 に答える