CentOSサーバーでApachehttpdサーバーを実行していますが、ルートとしてhttpdプロセスを実行し、Apacheユーザーとして1つ実行しているようです。
トップのこのスクリーンショットを参照してください:
ユーザーとグループは構成ファイルでApacheに設定されているので、ここで少し迷っています。
「ルート」プロセスを開始するものと、それが実行されている理由を知っている人はいますか?
「Apache」として実行されているのはワーカープロセスです。 「root」として実行されているのはマスタープロセスです。これは完全に正常です。
マスタープロセスは、必要に応じて(構成ファイルで指定されている制約を使用して)ワーカーを生成し、着信トラフィックを処理します。通常、下位ポート80および443にバインドするには、rootである必要があります。バインド後、Apacheユーザーに特権をドロップします。
労働者は時々刈り取られます。長時間実行されるプロセスは、rootとして実行されるプロセスです。 httpd.confを見ると、次のようなブロックが表示されます。
StartServers 1
MinSpareServers 1
MaxSpareServers 5
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
したがって、この例では、マスタープロセスは起動時に1人のワーカーを生成します。より多くのトラフィックがある場合、それはより多くの労働者を生み出します。ワーカーが4000のリクエストを処理すると、ワーカーは停止し、トラフィックに応じて、マスタープロセスが新しいワーカープロセスを生成する場合があります。
理由や方法はわかりませんが、ルートプロセスが親プロセスであり、Apacheが所有するプロセスが子プロセスであるように見えます。
pstree -Acp | grep httpd
を実行し、それをps aux | grep httpd
と比較しました