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
DumpLocationopzione nel/etc/abrt/abrt.conffile di configurazione. La directory di destinazione può essere specificata impostando DumpLocation =/var/crashnel/etc/abrt/abrt.conffile di configurazione esysctl kernel.core_patternil 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 1E infine riavviare
abrtd.service:$ service abrtd.service restart -
Interrompere il servizio abrtd.
kernel.core_patternnon verrà sovrascritto. - (Non ho mai provato).