
apache2サーバーを起動するコマンドが実際に3つのプロセスを起動する理由を知りたいです
実際、次のコマンドを入力します:
sudo apache2ctl -k start
次に、次のコマンドを入力します。
ps aux | grep apache2
apache2 に対応する 3 つのプロセスが返されます。これは正常ですか?
答え1
はい。Apache には、リクエストを処理するためのさまざまな処理モジュールがあります。最も一般的なのは、worker
とですprefork
。どちらも複数のプロセスを使用します。はPrefork
、クライアント接続ごとにプロセスを使用し、遅延なく新しい接続を処理できるアイドル プロセスがいくつかあることを常に確認します。Worker
は依然として複数のプロセスを使用しますが、これらのプロセスでスレッドも使用します。これは、と比較してリソースの使用量が少なくなりますが、prefork
それでも通常は複数のプロセスが必要です。
表示されるプロセスの 1 つは、TCP ポートを開いて接続を待機し、着信接続を別の Apache プロセスに渡して実際の処理を行う「マスター」プロセスである可能性があります。その他のプロセスは、またはprefork
モジュールworker
からのワーカー プロセスです。