J'ai quelques processus de démon qui se bloque de temps en temps et je veux savoir comment je peux activer les générations de vidage du noyau. Je sais que par défaut sur linux ulimit pour les dumps core est zéro alors j'ai besoin de le mettre à illimité si je veux voir les core dumps pour les processus que je cours. Mais ce que je veux faire est de générer des décharges de noyau pour les processus de démon qui s'exécutent sous le compte root. Quelqu'un peut-il me conseiller comment configurer le système? Merci d'avance.Comment générer des vidages de mémoire pour les processus daemon dans centos?
Répondre
je crois quelque chose comme:
ulimit -c unlimited
... ou une valeur permettra ce que vous de créer ces décharges. En outre, vous pouvez consulter les pages Web suivantes pour plus de détails: how to enable core et Linux FAQ
Je sais, c'est une année-vieille question, mais il est venu pour moi sur une recherche Google et la réponse acceptée est incomplète (pour Centos au moins).
Pour les systèmes dérivés RHEL, la plupart des daemons ont un script d'initialisation qui sources un fichier appelé:
/etc/sysconfig/{daemon_name}
Par exemple, pour apache est:
/etc/sysconfig/httpd
Variables d'environnement dans ces fichiers sont lus par le script init pendant le démarrage du démon, et ces variables sont utilisées pour configurer l'environnement dans lequel le démon est exécuté.
Pour activer les décharges de base, ajoutez la ligne suivante:
export DAEMON_COREFILE_LIMIT='unlimited'
Redémarrez le démon après avoir modifié ce fichier.
L'autre chose que vous devrez peut-être faire est de changer le modèle de nom de fichier de vidage de noyau du noyau. Par défaut, les vidages core seront produits dans le répertoire de travail actuel et porteront le nom «core». Ce n'est pas très utile car ils se remplaceront les uns les autres, et aussi dans le cas d'un daemon, son répertoire de travail peut être (a) inconnu (b) non accessible en écriture. Pour changer:
sysctl -w kernel.core_pattern=/tmp/core_%e_%p
Ce paramètre est ma recommandation, vous pouvez modifier à la fois le chemin vers le répertoire utilisé et aussi le modèle. Le modèle ci-dessus contiendra le nom de l'exécutable et le pid.
Pour définir plus de façon permanente, modifiez le fichier /etc/sysctl.conf
et insérer:
kernel.core_pattern=/tmp/core_%e_%p
En fait, je regardé sur ce site, mais les choses sont légèrement différentes de ce que la page dit sur ma machine et je ne pouvais pas le faire fonctionner . Mais merci pour votre réponse. Je vais continuer à essayer et si je peux le faire fonctionner, je l'afficherai ici. Merci encore! – istudy0
Les liens ci-dessus ont été utiles, mais j'ai trouvé un autre lien - http://www.bonsai.com/wiki/howtos/debugging/daemon_core/. Ce lien m'a été plus utile. – istudy0
Pour un système Debian Wheezy, les choses semblent un peu différentes de ce lien spécifique à RedHat. J'ai juste de bons résultats en redémarrant les démons après: echo "ulimit -c unlimited" | sudo tee /lib/lsb/init-functions.d/core-limit –