Tom: batch Datei um Apache zu restarten

Beitrag lesen

Hello,

Die Datei "prog.exe" ruft nur eine .bat Datei auf, die ich aber irgendwie nicht direkt öffnen konnte (wegen absoluter Pfade...).

Wenn ich diese Datei über den Explorer aufrufe oder die prog.exe manuell starte wird apache auch neugestartet. Doch über das PHP-SCript nicht. Es wird zwar die Meldung in der Bat Dateiausgegeben, dass Apache neugestartet wurde, doch ist der Apache-Dienst im TaskManager hinterher "Beendet" und lässt sich per Rechtsklick->Starten nicht starten. Führe ich die apache_start.bat oder die apache_restart.bat aus, klappt es wieder.

Woran kann das liegen?

Meine Theorie:
Innerhalb der zweiten Shell (die durch prog.exe produziert wird) wird eine weitere Instanz des Apachen gestartet. die in dieselbe Run-Datei schreibt? Wenn die Shell endet, wird vermutlich auch der Apache-Dienst beendet. Die Run-Datei ist jetzt aber auf den zweiten (jetzt nicht mehr laufenden) Apachen umgeschrieben. Der alte Apache ist daher auf diesem Wege nicht mehr erreichbar.

Du benötigst das Objekthandle (bei Linux PID) des Dienstes, den Du beenden willst. Woher Du das unter Windows bekommst, weiß ich nicht. Außerdem hat der Apache i.d.R. einen Parentprocess und viele Childs. Wenn Du nicht den Parent stoppst, nützt Dir das gar nichts.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de