Per impostare la posizione dei core dump in CentOS 6 puoi modificare /etc/sysctl.conf
. Per esempio se vuoi i core dump in /var/crash
:
kernel.core_pattern = /var/crash/core-%e-%s-%u-%g-%p-%t
Dove le variabili sono:
%e è il nome del file
%g è il gid in cui era in esecuzione il processo
%p è il pid del processo
%s è il segnale che ha causato il dump
%t è l'ora in cui si è verificato il dump
%u è l'uid sotto il quale il processo era in esecuzione
Inoltre devi aggiungere /etc/sysconfig/init
DAEMON_COREFILE_LIMIT='unlimited'
Ora applica le nuove modifiche:
$ sysctl -p
Ma c'è un avvertimento in questo modo. Se il parametro del kernel kernel.core_pattern viene sempre reimpostato e sovrascritto al riavvio nella seguente configurazione anche quando un valore viene specificato manualmente in /etc/sysctl.conf
:
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
In breve quando abrtd.service
inizia kernel.core_pattern
viene sovrascritto automaticamente dal sistema installato abrt-addon-ccpp
. Ci sono due modi per risolvere questo problema:
-
Impostazione
DumpLocation
opzione nel/etc/abrt/abrt.conf
file di configurazione. La directory di destinazione può essere specificata impostando DumpLocation =/var/crash
nel/etc/abrt/abrt.conf
file di configurazione esysctl kernel.core_pattern
il valore visualizzato di è lo stesso, ma in realtà il file principale verrà creato nella directory sotto/var/crash
.Inoltre, se hai abilitato SELinux, devi eseguire:
$ semanage fcontext -a -t public_content_rw_t "/var/crash(/.*)?" $ setsebool -P abrt_anon_write 1
E infine riavviare
abrtd.service
:$ service abrtd.service restart
-
Interrompere il servizio abrtd.
kernel.core_pattern
non verrà sovrascritto. - (Non ho mai provato).