15 votes

Existe-t-il un mécanisme dans Unix (ou Linux) pour arrêter un core dump en cours ?

Disons qu'un (très) gros processus se bloque et vide le noyau, et que nous en connaissons la cause grâce à d'autres informations (peut-être un message assert, peut-être autre chose).

Existe-t-il un moyen d'empêcher la génération complète du core dump, car c'est un gaspillage dans ce cas ?

Par exemple, le kill -9 d'un processus de vidage de noyau interromprait-il la génération du corefile ?

Évidemment, si nous savions à l'avance que nous ne voulons pas de vidage du noyau, nous pourrions définir l'ulimit de manière appropriée ou utiliser les divers utilitaires de contrôle des fichiers du noyau du système d'exploitation.

Mais cette question concerne l'étape "vidage du noyau déjà en cours"...

(Par exemple, imaginez que je suis le demandeur dans le cadre du projet https://stackoverflow.com/questions/18368242/how-to-bypass-a-2tb-core-dump-file-system-limit et je ne veux pas gaspiller 5-6 TB d'espace disque :) )

0 votes

Sous Linux, vous pouvez désactiver la génération du core dump... est-ce une option ?

0 votes

Non - les vidages du noyau sont nécessaires en général, mais nous cherchons juste un moyen de les arrêter dans les cas où nous savons quel est le problème sans avoir besoin du noyau, pour gagner du temps/de l'espace disque/etc..... Bien sûr, nous pouvons simplement supprimer le noyau une fois qu'il a terminé le dump (ou même le délier avant), mais il n'y a aucune raison de bloquer quelques gigaoctets d'espace sur le disque si nous pouvons simplement tuer le dump du noyau plus tôt.

0 votes

Vous pourriez éventuellement utiliser "cat /dev/null > <path_to_core>" dans le script appelant le programme lorsqu'une certaine condition est remplie, donc tant que l'entrée /proc/<pid> existe, sleep toutes les quelques secondes et exécuter la copie /dev/null vers le fichier core. Cela le mettra à zéro. Je ne suis pas sûr du contexte complet derrière la question, mais cela peut fonctionner.

0voto

Hamed Shahinnejad Points 100

Consultez ce lien, il peut vous être utile.

https://publib.boulder.ibm.com/httpserv/ihsdiag/coredumps.html

-1voto

Josh Strike Points 31

Il semble que vous puissiez exécuter ulimit -c (en supposant que vous utilisez bash) pour limiter la taille du core dump.

Voir : https://askubuntu.com/questions/220905/how-to-remove-limit-on-core-dump-file-size

y

http://ss64.com/bash/ulimit.html

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X