2016-03-22 10 views
0

Ich habe Apache und Node.js auf UbuntuVerwenden Node.js Schnittstelle mit bash

Gibt es eine Möglichkeit programmatisch zu überprüfen, ob der Apache-Dienst mit Knoten ausgeführt wird? Wenn Node.js nicht gestartet wird, kann derselbe Code auch für andere Prozesse wie MySQL verwendet werden.

Ich würde auch einen Weg finden, wie zum Knoten „ps -u Benutzer“ make ausführen und die Ausgabe in einem js String erfassen oder Objekt

Ich habe einen Blick auf Node.js geordneten Prozessen, aber ich kann es nicht herausfinden

Vielen Dank im Voraus

Antwort

1

Sie die „exec“ Methode verwenden, können von „child_process“ Modul einen Befehl von Ihrem Knoten App auszuführen und hat ihre Ausgabe als Parameter an eine Callback übergeben Funktion.

var exec = require("child_process").exec; 

exec("ps -u user", function (error, stdout, stderr) { 
    var myResult = stdout; 
    //doSomething 
}); 
1

Sie könnten auch shelljs verwenden - https://www.npmjs.com/package/shelljs, die viele Funktionen geht direkt zu beschießen und plattformübergreifend. Der Befehl ps gehört nicht dazu. Verwenden Sie daher exec ähnlich wie child_process.

require('shelljs/global');  
exec('ps -aux | grep apache') 

Mit exec Sie könnten Anlauf-/Wiederanlauf Service Aber auch müssen Sie Knoten Prozess als root ausführen, was nicht die beste Option. Oder erstellen Sie eine Benutzergruppe speziell für Apache.

Zum Ausführen von 'PS -U-Benutzer' das gleiche verwenden. Es gibt Ihnen ein Objekt mit allen Informationen über Prozesse zurück.

exec('ps -u user'); 

Und dann weiter mit der Ausgabe, wie Sie brauchen.

0

mit Spawn können Sie Shell-Skripte ausführen. Also, wenn Sie ein Shell-Skript geschrieben haben, um zu überprüfen, ob ein Prozess läuft ... etwas wie this sollten Sie uns spawnen, um es auszuführen. so etwas wie ... var child = spawn('sh', [__dirname+'/some-status-shell-script.sh'], {env: process.env});

Ebenso können Sie laichen benutzen, um Ihre MySQL-Datenbank ... similiar zu this

zugreifen
Verwandte Themen