Node.js grep进程(但不包括自己)

所以,从文档,我可以grep,如果一个进程存在与否。 但是,如果没有,我会得到自我的回报。 我可以通过执行实际的语句来做到这一点,但是node.js的方式呢? 我已经尝试了多个greps,但也许有人已经这样做了…我只需要添加一个额外的| grep -v | | grep -v | ,基本上。

 var util = require('util'), spawn = require('child_process').spawn, ps = spawn('ps', ['ax']), grep = spawn('grep', ['MyProcessThatIsNotRunning']); ps.stdout.on('data', function (data) { grep.stdin.write(data); }); ps.stderr.on('data', function (data) { console.log('ps stderr: ' + data); }); ps.on('exit', function (code) { if (code !== 0) { console.log('ps process exited with code ' + code); } grep.stdin.end(); }); grep.stdout.on('data', function (data) { console.log(data.toString()); }); grep.stderr.on('data', function (data) { console.log('grep stderr: ' + data); }); grep.on('exit', function (code) { if (code !== 0) { console.log('grep process exited with code ' + code); } }); 

为什么不使用child_prosses.exec ?

 var cmdline = 'ps ax | grep -v grep | grep MyProcessThatIsNotRunning'; require('child_process').exec(cmdline, function (error, stdout, stderr) { if (error) { console.error(error); process.exit(1); } // parse 'ps ax | grep -v grep | grep MyProcessThatIsNotRunning' result here console.log(stdout); }); 

对于上面的答案,你可以尝试

 var cmdline = 'ps ax | grep MyProcessThatIsNotRunnin[g]'; 

要么

 grep = spawn('grep', ['MyProcessThatIsNotRunnin[g]']); //should work didn't test though.. :) 

方括号是找不到grep的技巧。