Запуск apache2 запускает три процесса

Запуск apache2 запускает три процесса

Я хотел бы знать, почему команда запуска сервера Apache2 на самом деле запускает три процесса

Действительно, если ввести эту команду:

sudo apache2ctl -k start

затем, введя эту команду:

ps aux | grep apache2

дает три процесса, соответствующие apache2. Это нормально?

решение1

Да. Apache имеет несколько различных модулей обработки для обработки запросов. Наиболее распространенными являются workerи prefork. Оба используют несколько процессов. Preforkиспользует процесс на каждое клиентское соединение и всегда следит за тем, чтобы было доступно несколько простаивающих процессов для обработки новых соединений без задержки. Workerпо-прежнему использует несколько процессов, но также использует потоки в этих процессах. Это использует меньше ресурсов по сравнению с preforkобычным, но все еще требует нескольких процессов.

Один процесс, который вы видите, вероятно, является "главным" процессом, который открывает порты TCP и ждет соединений, а также передает входящие соединения другому процессу Apache для выполнения фактической обработки. Другие процессы являются рабочими процессами, либо из модуля prefork, либо из workerнего.

Связанный контент