2013-03-18 35 views
22

Cách lấy tên quy trình bằng PID (ID tiến trình) trong chương trình Node.JS, nền tảng bao gồm Mac, Windows, Linux.Thông tin quy trình NODEJS

Có một số mô-đun nút để làm điều đó không?

+2

http://nodejs.org/api/process .html đơn giản là 'process.pid' – generalhenry

+0

Không phải API này là truy cập duy nhất vào PID Tôi muốn có thêm thông tin được thu thập bởi quá trình PID – pianist829

+2

cũng cung cấp cho bạn nền tảng, kiến ​​trúc, sử dụng bộ nhớ, cwd, v.v. bạn muốn? – tjameson

Trả lời

28

Vâng, built-in module/lõi process thực hiện điều này:

Vì vậy, chỉ cần nói var process = require('process'); Sau đó

Để có được PID (Process ID):

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

Để có được thông tin Hệ điều hành:

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

Lưu ý: Bạn chỉ có thể biết được PID của quá trình con hoặc quá trình cha mẹ.


Cập nhật theo yêu cầu của bạn. (Tested On 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))); 
     } 
     }) 
    }); 
}); 

On Linux bạn có thể thử một cái gì đó như:

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

Tôi muốn lấy thông tin quá trình qua PID – pianist829

+0

Để có được 'PID', bạn nên sử dụng' process.pid ', nhưng không phải' process.getgid'. – zavg

+0

@zavg: Cảm ơn bạn đã nhập thông tin của bạn .. –

10

Trên Ubuntu Linux, tôi đã cố gắng

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

tôi đã cố gắng mà không cần nhập bất kỳ mô-đun xử lý nó làm việc

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

Một điều nữa tôi nhận thấy chúng ta có thể xác định tên cho quá trình sử dụng

process.title = 'node-chat' 

Để kiểm tra quá trình nodejs trong vỏ bash sử dụng lệnh sau

ps -aux | grep node-chat 
+1

Trong ví dụ cuối cùng của bạn, tôi nghĩ bạn đang trộn Javascript với bash. – starbeamrainbowlabs

Các vấn đề liên quan