o apache2 não está em execução, mas escuta na porta 80

1

Eu fiz uma imagem de uma das minhas imagens privadas do Amazon EC2 que executam um site e, em seguida, comecei a instalar o redmine. Depois que toda a instalação estiver concluída, está prestes a reiniciar o Apache. Eu encontrei o seguinte problema (desculpe, você pode ter que ampliar para ver a imagem):

Meuentendimentodoqueestavaacontecendoéqueoapache2nãoestáemexecução,masestáescutandoaporta80.Então,tentei: o que dá a mesma conclusão confusa mas consistente, o apache2 não está rodando, mas tenho certeza que é o processo 18304 que é o apache2 escutando a porta 80. Eventualmente, eu tive que matar o processo e reiniciar o apache que funcionava. Alguém poderia me explicar o que poderia ter causado isso e uma correção?

Update1:

Seguindo a sugestão synthesizerpatel para usar lsof . Este é exatamente o mesmo problema com processos diferentes de antes.

    
por Michael Z 06.01.2012 / 13:40

4 respostas

1

Às vezes, quando você para o apache (ou qualquer outro programa), o script não pode desligar o programa corretamente, porque ele aguarda algo (por exemplo, IO), mas exclui o arquivo pid. Assim, o script acredita que o apache não está sendo executado porque não há arquivo pid, mas o apache é executado ou, às vezes, não é realmente necessário, mas fica preso na porta.

Nestes casos você tem que matar o processo e você pode iniciar o programa. Eu já vi muitos desses processos presos do apache, slapd, cirus, ... às vezes acontece.

    
por 09.01.2012 / 07:55
0

Tente executar

lsof -n | grep TCP 

Além disso, o controlador apache2 nem sempre é o mais confiável, apenas verifica um arquivo PID, não o processo real.

ps -aef | grep httpd

$ 1 diz que você ainda tem um httpd em execução.

    
por 06.01.2012 / 13:44
0

Como o cartaz diz acima, use

lsof -n | grep TCP

ou

lsof -n | grep "*:www"

Além disso, no Ubuntu, ele usa o nome do processo "apache2", então você deve verificar isso com

ps -ax |grep apache

Em vez de grep httpd

    
por 09.01.2012 / 06:52
0

Executar

ps aux|grep apache

Você vê

/usr/share/apache2/ask-for-passphrase localhost:443 RSA

Se sim

Um dos sites contém um certificado SSL com uma frase secreta. Então, quando o apache estava tentando iniciar no momento da inicialização, ele não podia continuar sem que alguém entrasse manualmente na frase secreta.

Você tem duas opções para corrigir esse problema:

  1. Adicione uma diretiva SSLPassPhraseDialog à sua configuração.

  2. Remova sua frase secreta (Menos segura)

por 20.01.2015 / 14:11