Como obter um despejo de núcleo do apache?


8

Estou tendo problemas com o meu Ubuntu 14.10 Server. Ao executar determinadas ações, meu apache2 é reiniciado com um erro de falha de segmentação. Para depurar esse problema, eu gostaria de criar um dump principal. Eu fiz o seguinte:

  • adicionado CoreDumpDirectory /tmp/apache-coredumpsao arquivo de configuração
  • Corre ulimit -c unlimited
  • Corre apt-get install apache2-dbg php5-dbg
  • reiniciado apachee causou o erro. O log afirma que pode haver um dump principal no diretório, mas está vazio.

Também tentei usar o gdb diretamente no executável do apache2, mas o apache não será iniciado a menos que seja iniciado apachectlou service apache2 start.

Como posso obter um dump principal para depurar meu problema OU como posso anexar gdbdiretamente ao apache?



Infelizmente, isso não funcionou. Tentei definir as permissões conforme sugerido no primeiro link, mas ainda assim nenhum núcleo é despejado. Eu já conhecia o segundo link. Realmente não responde minha pergunta de uma maneira específica do ubuntu (o Ubuntu não possui um executável httpd, e chamar o apache2 diretamente não funciona pelos motivos mencionados anteriormente).
Andreas Hartmann

O coredump está em / tmp, talvez?
Elder Geek

Especifiquei o dump principal para ser colocado em uma pasta diferente, portanto não está em / tmp.
22615 Andreas Hartmann

Não quero usar o apport, quero examinar meu problema localmente e não reportar um erro, porque provavelmente não é um bug do apache.
22615 Andreas Hartmann

Respostas:


4

ulimit -c unlimited afeta apenas seu shell atual.

Você pode confirmar isso observando a saída cat /proc/$(pidof -s apache2).

Eu adicionei ulimit -c unlimiteda /etc/default/apache2e agora cat /proc/$(pidof -s apache2)/limitsinclui

Max core file size        unlimited            unlimited            bytes

Eu tentei isso, mas ele ainda não conseguiu o Apache (12 LTS) para despejar o núcleo. Alguma ideia?
Josip Rodin

Encontrou a resposta - o apport foi ativado /etc/default/apporte mudou o padrão de despejo do núcleo do kernel para se adequar. Veja serverfault.com/questions/470407/…
Josip Rodin

echo '/tmp/apache-coredumps/core-%e.%p'> / proc / sys / kernel / core_pattern
Rudger
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.