Falha na reinicialização do Apache

Falha na reinicialização do Apache

Meu servidor estava com uma carga alta e parei o Apache2 até que a carga diminuísse usando o killall -9 apache2. Ao iniciar o Apache2 recebi o erro:

*# /etc/init.d/apache2 restart * Reiniciando o servidor web apache2 httpd (pid 4457?) não em execução (98)Endereço já em uso: make_sock: não foi possível vincular ao endereço 0.0.0.0:80 nenhum soquete de escuta disponível, fechando down Não é possível abrir registros*

Eu então lsof | grep "*.www" e eliminou o processo usando a porta 80.

Minha pergunta é como um processo ainda pode usar a porta 80 mesmo depois de executar o comando kill all?

Responder1

http://httpd.apache.org/docs/2.2/stopping.html

Para parar ou reiniciar o Apache, você deve enviar um sinal para os processos httpd em execução. Existem duas maneiras de enviar os sinais. Primeiro, você pode usar o comando unix kill para enviar sinais diretamente aos processos.Você notará muitos executáveis ​​httpd em execução no seu sistema, mas não deve enviar sinais para nenhum deles, exceto para o pai, cujo pid está no PidFile. Isso quer dizer que você nunca precisará enviar sinais para nenhum processo, exceto o pai. Existem quatro sinais que você pode enviar ao pai: TERM, USR1, HUP e WINCH, que serão descritos em breve.

Para enviar um sinal ao pai você deve emitir um comando como:

  kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

Minha ênfase.

informação relacionada