Estou trabalhando em um grande projeto C++. Ao testá-lo, frequentemente recebo um núcleo despejado do processo principal. Isso produz muitos despejos de núcleo desinteressantes salvos systemd
e ocupa espaço em disco útil.
É possível, no Linux em execução systemd
, desabilitar os despejos de núcleo de serem gravados apenas temporariamente para um determinado usuário ou talvez ainda melhor apenas em um determinado tty ou em uma determinada sessão de shell?
Parece-me razoável que um usuário tenha a opção de desabilitar as gravações de despejos de núcleo se estiver prestes a executar um programa que despeja um núcleo com frequência e não deseja preencher o espaço em disco, sem a intervenção do root.
Você tentou editar
/etc/profile
e adicionar uma linha:para isso? Se você não for root, você pode dizer às pessoas para executar este comando manualmente.
BTW: a maioria das distribuições Linux faz um limite de coredump de 0 o padrão, portanto, a depuração em um sistema Lnux típico não funciona a menos que você digite
em sua concha.
O
ulimit
comando chama internamente osetrlimit()
syscall que configura as configurações no processo que são herdadas por todos os filhos. Qualquer programa pode chamarsetrlimit()
, não apenas o shell.Qualquer um dos filhos em teoria pode alterar essas configurações e criar uma nova linha de herança. Portanto, certifique-se de que, por exemplo, nenhum shell seja chamado no meio que altere o valor novamente. Isso pode acontecer, por exemplo, caso uma chamada para
ulimit
esteja em um dos scripts de inicialização do shell.