Como editar o padrão de dump principal sem desabilitar o apport?

6

Atualmente, habilitei os core dumps editando /etc/limits.conf e addig * soft core unlimited , além de usar ulimit -c unlimited .

Mas o core_pattern é este:

kernel.core_pattern = |/usr/share/apport/apport %p %s %c %P

Assim, o núcleo é transmitido para o suporte. Eu não me importo, e eu não quero mexer com o apport (eu tenho uma memória de algo errado quando fazê-lo), além disso, o apport gera um arquivo core no diretório do meu binário quando ele falha.

Existe alguma maneira de editar o local onde o apport salva o núcleo ou o nome do arquivo (em vez de um simples core )? Semelhante ao que eu poderia fazer, desabilitando o apport e editando o core_pattern, mas sem desabilitar o apport.

    
por coyotte508 07.05.2015 / 10:43

2 respostas

0

Na verdade, eu encontrei uma maneira melhor de fazer isso, pois fazer mudanças no apport significa que toda vez que fizermos o upgrade, teremos que adicionar nossas alterações.

O Linux permite que você forneça um script de shells como o programa a ser executado toda vez que um núcleo for gerado. Dentro deste arquivo principal, você pode chamar o apport como sempre e depois fazer o seu material personalizado. Isso inclui alterar o nome e a localização do arquivo principal.

Para encontrar o caminho do núcleo gerado pelo apport, você pode usar o seguinte

core_dir=realpath '/proc//cwd'
    
por Abhishek Jain 18.03.2018 / 11:57
2

Você pode editar o arquivo python apport para fazer isso. Alterar a localização do núcleo é direto: em vez de

core_path = os.path.join(cwd, 'core') 

você pode colocar

core_path = os.path.join('my_custom_path, 'core)

o nome também pode ser alterado de maneira semelhante, ou seja, de:

core_path += '.' + str(pid)

para

core_path += '.' + str(my_custom_name) + '.' + str(pid)

observe que, se você quiser adicionar o nome binário ao arquivo principal, terá que passá-lo para o apport usando o core_pattern ou seja, algo como

|/usr/share/apport/apport %p %s %c %d %P %e

Observe o %e acima, que passa o nome do executável para o script apport

Lembre-se de reiniciar o serviço apport depois de fazer uma alteração no script

    
por Abhishek Jain 28.02.2018 / 12:23

Tags