Falha de reinicialização do Apache

0

Meu servidor teve uma carga alta e parei o Apache2 até que a carga recuasse usando o killall -9 apache2. Ao iniciar o Apache2, recebi o erro:

* # /etc/init.d/apache2 restart  * Reiniciar o servidor web apache2 httpd (pid 4457?) Não está em execução (98) Endereço já em uso: make_sock: não pôde ligar ao endereço 0.0.0.0:80 sem soquetes de escuta disponíveis, desligando Não é possível abrir os logs *

eu então lsof | grep "* .www" e matou 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?

    
por Paddington 28.09.2012 / 09:31

1 resposta

0

link

In order to stop or restart Apache, you must send a signal to the running httpd processes. There are two ways to send the signals. First, you can use the unix kill command to directly send signals to the processes. You will notice many httpd executables running on your system, but you should not send signals to any of them except the parent, whose pid is in the PidFile. That is to say you shouldn't ever need to send signals to any process except the parent. There are four signals that you can send the parent: TERM, USR1, HUP, and WINCH, which will be described in a moment.

To send a signal to the parent you should issue a command such as:

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

Minha ênfase.

    
por 28.09.2012 / 12:01