CentOS httpd rodando como usuário root e apache

2

Eu tenho um servidor httpd Apache em execução no meu servidor CentOS, mas aparentemente ambos executam um processo httpd como root e um como o usuário do apache.

Veja esta imagem do topo:

Ousuárioeogrupoestãodefinidosparaoapachenoarquivodeconfiguração,entãoestoumeioqueperdidoaqui.

Algumdevocêssabeoqueiniciaoprocesso"raiz" e por que ele está sendo executado?

    
por Jacob Pedersen 30.01.2012 / 23:35

2 respostas

8

O que está sendo executado como "apache" é o processo de trabalho. O que está rodando como "root" é o processo mestre. Isso é completamente normal.

O processo mestre gerará os funcionários conforme necessário (com quaisquer restrições especificadas no arquivo de configuração) para manipular o tráfego de entrada. Normalmente, ele precisará ser root para se vincular às portas baixas 80 e 443. Depois de vincular, ele descartará privilégios para o usuário do apache.

Os trabalhadores serão colhidos de tempos em tempos. O processo de longa duração é aquele executado como root. Se você olhar para o httpd.conf, verá um bloco parecido com:

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

Assim, o processo mestre gerará um trabalhador neste exemplo na inicialização. Se houver mais tráfego, isso gerará mais trabalhadores. Quando os trabalhadores atenderem a 4.000 solicitações, o trabalhador morrerá e o processo mestre poderá gerar novos processos de trabalho, dependendo do tráfego.

    
por 30.01.2012 / 23:50
0

Eu não sei o porque ou o como, mas parece que o processo raiz é o processo pai e os processos de propriedade do apache são os filhos.

Eu corri pstree -Acp | grep httpd e comparei a ps aux | grep httpd

    
por 30.01.2012 / 23:49