Beim Starten von Apache2 werden drei Prozesse gestartet

Beim Starten von Apache2 werden drei Prozesse gestartet

Ich würde gerne wissen, warum der Befehl zum Starten des Apache2-Servers tatsächlich drei Prozesse startet

Tatsächlich reicht es aus, diesen Befehl einzugeben:

sudo apache2ctl -k start

Geben Sie dann diesen Befehl ein:

ps aux | grep apache2

ergibt drei Prozesse, die Apache2 entsprechen. Ist das normal?

Antwort1

Ja. Apache verfügt über mehrere verschiedene Verarbeitungsmodule zur Bearbeitung von Anfragen. Die gebräuchlichsten sind workerund prefork. Beide verwenden mehrere Prozesse. Preforkverwendet einen Prozess pro Client-Verbindung und stellt immer sicher, dass einige inaktive Prozesse verfügbar sind, um neue Verbindungen ohne Verzögerung zu verarbeiten. Workerverwendet immer noch mehrere Prozesse, verwendet in diesen Prozessen aber auch Threads. Dies verbraucht im Vergleich zu weniger Ressourcen, preforkbenötigt aber normalerweise trotzdem mehrere Prozesse.

Ein Prozess, den Sie sehen, ist wahrscheinlich der „Master“-Prozess, der die TCP-Ports öffnet, auf Verbindungen wartet und eingehende Verbindungen an einen anderen Apache-Prozess weiterleitet, der die eigentliche Verarbeitung durchführt. Die anderen Prozesse sind Arbeitsprozesse, entweder von preforkoder workerals Modul.

verwandte Informationen