Para definir a localização dos dumps principais no CentOS 6, você pode editar /etc/sysctl.conf
. Por exemplo, se você quiser despejos principais em /var/crash
:
kernel.core_pattern = /var/crash/core-%e-%s-%u-%g-%p-%t
Onde as variáveis são:
%e is the filename
%g is the gid the process was running under
%p is the pid of the process
%s is the signal that caused the dump
%t is the time the dump occurred
%u is the uid the process was running under
Além disso, você precisa adicionar /etc/sysconfig/init
DAEMON_COREFILE_LIMIT='unlimited'
Agora, aplique novas alterações:
$ sysctl -p
Mas há uma ressalva por aqui. Se o parâmetro do kernel kernel.core_pattern for sempre redefinido e sobrescrito na reinicialização para a seguinte configuração, mesmo quando um valor for especificado manualmente em /etc/sysctl.conf
:
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Em resumo, quando abrtd.service
inicia kernel.core_pattern
é sobrescrito automaticamente pelo sistema instalado abrt-addon-ccpp
. Existem duas maneiras de resolver isso:
-
Definindo a opção
DumpLocation
no arquivo de configuração/etc/abrt/abrt.conf
. O diretório de destino pode ser especificado definindo DumpLocation =/var/crash
no arquivo de configuração/etc/abrt/abrt.conf
, e o valor exibido desysctl kernel.core_pattern
é o mesmo, mas na verdade o arquivo principal será criado no diretório em/var/crash
.Além disso, se você tiver o SELinux ativado, precisará executar:
$ semanage fcontext -a -t public_content_rw_t "/var/crash(/.*)?" $ setsebool -P abrt_anon_write 1
E, finalmente, reinicie o
abrtd.service
:$ service abrtd.service restart
-
Pare o serviço abrtd.
kernel.core_pattern
não será sobrescrito. - (Eu nunca testei).