下面是使用上述forever工具,GNU awk和內置child_process節點庫中的一個例子:
var spawn = require('child_process').spawn,
forever = spawn('forever', ['list', '--plain']),
awk = spawn('awk', ['NR>2{print $4,$5,$6,$7,"\t",$9}']);
forever.stdout.on('data', function (data) {
awk.stdin.write(data);
});
forever.stderr.on('data', function (data) {
console.log('forever stderr: ' + data);
});
forever.on('close', function (code) {
if (code !== 0) {
console.log('forever process exited with code ' + code);
}
awk.stdin.end();
});
awk.stdout.on('data', function (data) {
// data is your result as Buffer
// print data as string
console.log('' + data);
});
awk.stderr.on('data', function (data) {
console.log('awk stderr: ' + data);
});
awk.on('close', function (code) {
if (code !== 0) {
console.log('awk process exited with code ' + code);
}
});
這裏發生的事情,主要是:
$ forever list --plain | awk '{NR>2{print $4,$5,$6,$7,"\t",$9}}'
當然, awk打印的變量取決於forever list
的輸出......爲了測試正確的解決方案,我將從打印$0
開始獲取整個輸出,然後進行修剪,使其僅報告通知您需要的。
你在找pid嗎? – ftabaro
@Freakinator pid和名稱 –
從命令行,我們使用[forever](https://github.com/foreverjs/forever)工具。 從服務器內部我會做一些奇特的事情(比如產生一個子進程,它從永遠的輸出中獲取pid和名稱,並在節點實例中收集結果),但我不確定是否要這樣做。 .. – ftabaro