Não é possível parar os processos do Apache

Não é possível parar os processos do Apache

Atualizar:Respondendo ao comentário:

verifique os processos do apache:

$ ps a | grep apache 3
grep: 3: No such file or directory
$ ps a | grep apache
 4514 pts/0    S+     0:00 grep --color=auto apache
$ ps a | grep apache2
 4516 pts/0    S+     0:00 grep --color=auto apache2

verificando o log de erros do apache

$ tail /var/log/apache2/error.log
[Sun Aug 07 03:14:19 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 03:13:58 2011] [notice] Graceful restart requested, doing restart
[Mon Aug 08 03:14:00 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 09:03:16 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 08 09:05:47 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations

Original:Parei o apache, mas por que ele ainda tem o mesmo número de processos em execução?

$ ps -A | grep apache
 1663 ?        00:00:00 apache2
 1667 ?        00:00:00 apache2
 1668 ?        00:00:00 apache2
 1669 ?        00:00:00 apache2
 1670 ?        00:00:00 apache2
 1671 ?        00:00:00 apache2
$ /etc/init.d/apache2 stop
 * Stopping web server apache2                            [ OK ] 
$ ps -A | grep apache
 1663 ?        00:00:00 apache2
 1667 ?        00:00:00 apache2
 1668 ?        00:00:00 apache2
 1669 ?        00:00:00 apache2
 1670 ?        00:00:00 apache2
 1671 ?        00:00:00 apache2

Obrigado!

Responder1

Isso pode acontecer ocasionalmente quando o Apache se recusa a parar ouProcessos Zumbis. Para o primeiro, você pode eliminar todos os processos em execução com sudo killall -9 apache2; no entanto, para o último, você simplesmente precisará esperar que eles desapareçam. Caso o Apache não queira parar bem, o que você realmente deseja fazer é investigar o que está acontecendo. Descobrir exatamente o que está acontecendo pode ser difícil.

Uma straceidentificação interativa do processo pode fornecer uma pista sobre quais sites estão agindo e causando problemas. Acima, ps -Avocê pode verificar o primeiro processo com

strace -p 1663

Isso será anexado ao rastreamento de pilha dos processos em execução, fornecendo saída ao vivo do que está acontecendo. A qualquer momento você pode Ctrl+C

Um recurso adicional é o log de erros principal do Apache, que pode ser encontrado em /var/log/apache2/error.logVocê desejará obter uma parte decente do log e folheá-lo para obter detalhes. Se o problema for contínuo em execução

tail -f /var/log/apache2/error.log

Isso é semelhante ao que straceserá executado em tempo real. Para as últimas N linhas, substitua -fpor -#onde #é um número positivo como 50, 100, 282, etc.

Responder2

Certifique-se de ter as permissões adequadas para interromper o serviço.

Se você executar:

service apache2 stop

você não receberá nenhum erro apenas:

* Parando o servidor web apache2

Tentar:

sudo service apache2 stop      

Responder3

Eu também tive o mesmo problema e tentei o seguinte:

sudo apache2ctl stop

interromper o serviço e

sudo apache2ctl start

para iniciá-lo novamente.

Funciona para mim, qualquer sugestão possível é bem-vinda.

Responder4

Os processos podem ser solicitados (enviando umsinalpara eles) parar. O killcomando é uma maneira de fazer isso. Se você conhece o ID do processo (PID), pode solicitá-lo executando o comando abaixo em um terminal:

kill PID_OF_YOUR_PROCESS

O exemplo acima envia ao PID o sinal TERM padrão (código 15). Você pode procurar os códigos de sinal nopágina de manual de matar( man kill).

Quando o programa desconsidera o sinal TERM enviado a eles, ainda é possível aplicar um pouco mais de pressão enviando o sinal KILL (código 9). Este sinal é usado como último recurso, pois o processo pode não salvar nenhum dado não salvo.

Especificar a -SIGNAL_CODEcomo o primeiro parâmetro antes do ID do processo enviará ao processo o sinal específico. Outro recurso útil do killcomando é que você pode especificar mais PIDs como no exemplo a seguir:

kill -9 PID1 PID2 PID3 PID4

Tente encerrar os processos do Apache usando a kill -9linha. Eles deveriam parar, a menos que algo os impeça de fazê-lo.

informação relacionada