NODEJS进程信息

问题描述:

如何在Node.JS程序中使用PID(进程ID)获取进程名称,平台包括Mac,Windows,Linux。NODEJS进程信息

它是否有一些节点模块来做到这一点?

+2

http://nodejs.org/api/process .html只是'process.pid' – generalhenry 2013-03-18 07:24:09

+0

是不是这个API是唯一访问PID我想要的额外信息是由PID得到的 – pianist829 2013-03-18 07:27:56

+2

程序还给你平台,arch,内存使用情况,cwd等等。你要? – tjameson 2013-03-18 07:38:42

是的,内置/核心模块process做到这一点:

所以,只说var process = require('process');然后

为了得到PID(进程ID):

if (process.pid) { 
    console.log('This process is your pid ' + process.pid); 
} 

要获取平台信息:

console.log('This platform is ' + process.platform); 

注:您只能了解子进程或父进程的PID。


根据您的要求更新。 (测试 WINDOWS

var exec = require('child_process').exec; 
var yourPID = '1444'; 

exec('tasklist', function(err, stdout, stderr) { 
    var lines = stdout.toString().split('\n'); 
    var results = new Array(); 
    lines.forEach(function(line) { 
     var parts = line.split('='); 
     parts.forEach(function(items){ 
     if(items.toString().indexOf(yourPID) > -1){ 
     console.log(items.toString().substring(0, items.toString().indexOf(yourPID))); 
     } 
     }) 
    }); 
}); 

Linux你可以尝试这样的:

var spawn = require('child_process').spawn, 
    cmdd = spawn('your_command'); //something like: 'man ps' 

cmdd.stdout.on('data', function (data) { 
    console.log('' + data); 
}); 
cmdd.stderr.setEncoding('utf8'); 
cmdd.stderr.on('data', function (data) { 
    if (/^execvp\(\)/.test(data)) { 
    console.log('Failed to start child process.'); 
    } 
}); 
+1

我想通过PID得到过程信息 – pianist829 2013-03-18 11:09:18

+0

要得到'PID'你应该使用'process.pid ',但不是'process.getgid'。 – zavg 2013-07-15 16:40:30

+0

@zavg:感谢您的友好输入。 – 2013-07-16 05:29:43

在Ubuntu Linux,我试过

var process = require('process'); but it gave error. 

我试着不导入它的工作

任何处理模块
console.log('This process is your pid ' + process.pid); 

还有一件事我注意到,我们可以使用

process.title = 'node-chat' 

过程中使用以下命令来检查在bash shell中的进程的NodeJS定义名称

ps -aux | grep node-chat 
+1

在您的最后一个示例中,我认为您将Javascript与bash混合在一起。 – starbeamrainbowlabs 2014-03-17 14:06:21