Назад | Перейти на главную страницу

CentOS httpd работает как пользователь root и apache

У меня есть сервер Apache httpd, работающий на моем сервере CentOS, но, по-видимому, он одновременно запускает httpd-процесс как root и один как пользователь apache.

См. Этот снимок экрана сверху:

Пользователь и группа настроены на apache в файле конфигурации, поэтому я как бы потерялся здесь.

Кто-нибудь из вас знает, что запускает «корневой» процесс и почему он выполняется?

Тот, который работает как "apache", является рабочим процессом. Тот, который работает как «root», является главным процессом. Это совершенно нормально.

Главный процесс при необходимости будет порождать воркеров (с любыми ограничениями, указанными в файле конфигурации) для обработки входящего трафика. Обычно для привязки к нижним портам 80 и 443 он должен быть пользователем root. После привязки он теряет привилегии для пользователя apache.

Время от времени будут пожинать рабочие. Долговременный процесс - это тот, который выполняется от имени пользователя root. Если вы посмотрите на httpd.conf, вы увидите блок, который выглядит примерно так:

StartServers       1
MinSpareServers    1
MaxSpareServers    5
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000

Итак, главный процесс в этом примере при запуске порождает одного воркера. Если будет больше трафика, появится больше рабочих. Как только воркеры обработают 4000 запросов, воркер умрет, и главный процесс может порождать новые рабочие процессы, в зависимости от трафика.

Я не знаю, почему или как, но может показаться, что корневой процесс является родительским процессом, а процессы, принадлежащие apache, являются дочерними.

Я побежал pstree -Acp | grep httpd и сравнил это с ps aux | grep httpd