2013-03-18 13 views
22

Jak uzyskać nazwę procesu z PID (ID procesu) w programie Node.JS, platforma obejmuje komputery Mac, Windows, Linux.Informacje o procesie NODEJS

Czy ma kilka modułów węzła, aby to zrobić?

+2

http://nodejs.org/api/process .html po prostu 'process.pid' – generalhenry

+0

Czy ten interfejs API nie jest jedynym dostępem do PID Chcę uzyskać dodatkowe informacje przez proces PID – pianist829

+2

również udostępnia platformę, arch, wykorzystanie pamięci, cwd, itp. Jakie inne informacje nie są chcesz? – tjameson

Odpowiedz

28

Tak, wbudowane moduły/rdzeń process robi to:

Więc po prostu powiedzieć var process = require('process'); Następnie

Aby uzyskać PID (identyfikator procesu):

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

Aby uzyskać informacje na platformy:

Uwaga: Można poznać tylko PID procesu potomnego lub procesu nadrzędnego.


Zaktualizowany zgodnie z Twoimi wymaganiami. (Testowane na 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))); 
     } 
     }) 
    }); 
}); 

Na Linux można spróbować coś takiego:

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

Chcę uzyskać informacje o procesie poprzez PID – pianist829

+0

Aby uzyskać 'PID', powinieneś użyć' process.pid ', ale nie' process.getgid'. – zavg

+0

@zavg: Dzięki za twoje miłe dane wejściowe .. –

10

na Ubuntu Linux, próbowałem

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

Próbowałem bez importowania dowolnego modułu procesowego to działało

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

jeszcze jedno zauważyłem możemy zdefiniować nazwę procesu z wykorzystaniem

process.title = 'node-chat' 

by sprawdzić proces nodejs w powłoki bash za pomocą następującego polecenia

ps -aux | grep node-chat 
+1

W twoim ostatnim przykładzie, myślę, że mieszasz JavaScript z bash. – starbeamrainbowlabs

Powiązane problemy