Pour définir l'emplacement des vidages de mémoire dans CentOS 6, vous pouvez modifier /etc/sysctl.conf
. Par exemple si vous voulez des core dumps en /var/crash
:
kernel.core_pattern = /var/crash/core-%e-%s-%u-%g-%p-%t
Où les variables sont :
%e est le nom du fichier
%g est le gid sous lequel le processus s'exécutait
%p est le pid du processus
%s est le signal qui a causé le vidage
%t est l'heure à laquelle le vidage s'est produit
%u est l'uid sous lequel le processus s'exécutait
Vous devez également ajouter /etc/sysconfig/init
DAEMON_COREFILE_LIMIT='unlimited'
Appliquez maintenant les nouvelles modifications :
$ sysctl -p
Mais il y a une mise en garde de cette façon. Si le paramètre du noyau kernel.core_pattern est toujours réinitialisé et écrasé au redémarrage avec la configuration suivante même lorsqu'une valeur est spécifiée manuellement dans /etc/sysctl.conf
:
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Bref quand abrtd.service
commence kernel.core_pattern
est écrasé automatiquement par le système installé abrt-addon-ccpp
. Il existe deux façons de résoudre ce problème :
-
Réglage
DumpLocation
option dans le/etc/abrt/abrt.conf
fichier de configuration. Le répertoire de destination peut être spécifié en définissant DumpLocation =/var/crash
dans le/etc/abrt/abrt.conf
fichier de configuration, etsysctl kernel.core_pattern
La valeur affichée est la même mais le fichier principal sera créé dans le répertoire sous/var/crash
.De plus, si vous avez activé SELinux, vous devez exécuter :
$ semanage fcontext -a -t public_content_rw_t "/var/crash(/.*)?" $ setsebool -P abrt_anon_write 1
Et enfin redémarrez
abrtd.service
:$ service abrtd.service restart
-
Arrêtez le service abrtd.
kernel.core_pattern
ne sera pas écrasé. - (je n'ai jamais testé).