J'ai des problèmes avec mon serveur Ubuntu 14.10. Après avoir effectué certaines actions, mon apache2 redémarre avec une erreur de segmentation. Afin de déboguer ce problème, je voudrais créer un vidage de mémoire. J'ai fait ce qui suit:
- ajouté
CoreDumpDirectory /tmp/apache-coredumps
au fichier de configuration - Courir
ulimit -c unlimited
- Courir
apt-get install apache2-dbg php5-dbg
- redémarré
apache
et a provoqué l'erreur. Le journal affirme qu'il peut y avoir un vidage de mémoire dans le répertoire, mais il est vide.
J'ai également essayé d'utiliser gdb directement sur l'exécutable d'apache2, mais apache ne démarrera que s'il est lancé via apachectl
ou service apache2 start
.
Comment puis-je obtenir un vidage de mémoire pour déboguer mon problème OU comment puis-je attacher gdb
directement à apache?
Réponses:
ulimit -c unlimited
n'affecte que votre shell actuel.Vous pouvez le confirmer en regardant la sortie
cat /proc/$(pidof -s apache2)
.J'ai ajouté
ulimit -c unlimited
à/etc/default/apache2
et maintenantcat /proc/$(pidof -s apache2)/limits
inclutla source
/etc/default/apport
, et elle a changé le modèle de vidage du noyau du noyau pour l'adapter. Voir serverfault.com/questions/470407/…