啟動 apache2 會啟動三個進程

啟動 apache2 會啟動三個進程

我想知道為什麼啟動apache2伺服器的命令實際上啟動了三個進程

事實上,輸入這個命令:

sudo apache2ctl -k start

然後,輸入以下命令:

ps aux | grep apache2

給出了對應於apache2的三個進程。這樣正常嗎?

答案1

是的。 Apache 有幾個不同的處理模組來處理請求。最常見的是workerprefork。兩者都使用多個進程。Prefork每個用戶端連線使用一個進程,並始終確保有一些空閒進程可用於立即處理新連線。Worker仍然使用多個進程,但也在這些進程中使用執行緒。與通常情況相比,這使用更少的資源,prefork但仍然需要多個進程。

您看到的一個進程可能是「主」進程,它會開啟 TCP 連接埠並等待連接,並將傳入連線傳遞到另一個 apache 進程以進行實際處理。其他進程是工作進程,要么來自模組,prefork要么worker來自模組。

相關內容