2013-01-18 18 views
13

Gibt es eine Möglichkeit zu überprüfen, ob eine beliebige PID auf dem System mit Node.js läuft oder lebt? Angenommen, das Skript Node.js verfügt über die entsprechenden Berechtigungen, um /proc oder das Windows-Äquivalent zu lesen.Wie überprüft man, ob eine beliebige PID mit Node.js läuft?

if (isAlive(pid)) { //do stuff } 

oder asynchron:

Dies könnte entweder synchron erfolgen

getProcessStatus(pid, function(status) { 
    if (status === "alive") { //do stuff } 
} 

Bitte beachte, dass ich hoffe, eine Lösung dafür zu finden, die PID mit einem beliebigen System funktioniert, nicht nur die PID eines laufenden Node.js-Prozesses.

Antwort

17

Ich musste auch in einem Projekt nach laufenden PIDs suchen. Ich nahm this answerkill -0 <PID> der Verwendung und wickelte es in einem Modul aufgerufen ist laufhttps://npmjs.org/package/is-running

npm install is-running

+0

+1 Erzeugt kein Kind zum Töten. Nur eine Frage, warum benötigen Sie das Modul exec in Ihrem 'index.js'? – hexacyanide

+0

Exec ist von einer früheren Version übrig. Es sollte weggehen – Noah

+2

Funktioniert es unter Windows? – Ujeenator

-1

Ich bin kein Experte hier, aber könnten Sie nicht einen Child-Prozess erstellen, um den Status mit einem Befehlszeilenprogramm zu überprüfen?