Starten Sie Apache neu und beenden Sie alle Unterprozesse

Starten Sie Apache neu und beenden Sie alle Unterprozesse

Ich versuche, Apache auf meinem Server neu zu starten, aber dadurch werden anscheinend nicht alle aktuell ausgeführten Prozesse von Apache beendet.

Der Befehl, den ich verwende, ist

sudo /etc/init.d/apache2 Neustart

Gibt es noch etwas, das ich tun sollte, wodurch auch alle untergeordneten Prozesse beendet werden?

Danke

Josh Pennington

Antwort1

Die untergeordneten Prozesse sollten angehalten werden, sobald sie mit der Bearbeitung ihrer aktuellen Anfragen fertig sind. Möchten Sie wirklich, dass Ihr Server Verbindungen mitten beim Bereitstellen einer Seite trennt? Der neu gestartete Server wird alle neuen Verbindungen verarbeiten, da er das Abhören neuer Verbindungen übernommen hat.

Überprüfen Sie nach etwa einer Minute, ob die untergeordneten Server des alten Servers beendet wurden. Wenn sie noch laufen, liegt wahrscheinlich ein Problem vor.

Antwort2

Einige Prozesse können gesperrt werden. Versuchen Sie:
sudo /etc/init.d/apache stop
sudo pgrep apache
Wenn der obige Befehl etwas zurückgibt, führen Sie Folgendes aus:
sudo pkill -9 apache
Starten Sie Apache dann erneut:
sudo /etc/init.d/apache2 start

Antwort3

PROCESS_APACHE=ps -ef | grep apache | awk {'print $2'}

töten -9 $PROCESS_APACHE

verwandte Informationen