Disons qu'un processus (très) volumineux plante et vide le noyau, et nous connaissons la cause à partir d'autres informations (peut-être un message d'assertion, peut-être autre chose).
Existe-t-il un moyen d'empêcher le vidage de mémoire d'être complètement généré, car c'est un gaspillage dans ce cas?
Par exemple, est-ce que tuer -9 d'un processus de vidage de mémoire interromprait la génération du fichier de mémoire?
Évidemment, si nous savions à l'avance que nous ne voulions pas de vidages de mémoire, nous pourrions définir ulimit de manière appropriée ou utiliser les divers utilitaires de contrôle de fichiers de base du système d'exploitation.
Mais cette question concerne la phase "core dump déjà en cours" ...
(Par exemple, imaginez que je suis le demandeur dans /programming/18368242/how-to-bypass-a-2tb-core-dump-file-system-limit et je ne veux pas gaspiller 5 -6 To d'espace disque :))
Réponses:
Généralement: non, il n'y a aucun moyen de tuer de manière fiable un coredump.
Cela étant dit, il existe une possibilité (au moins sous Linux) pour le commerce * NIX probablement aucun moyen
La possibilité réside dans le fait que la série 3.x du noyau est capable d'interrompre l'écriture des fichiers. Une possibilité est de trouver le thread qui fait le dumping et d'envoyer plusieurs fois SIGKILL jusqu'à ce qu'il réussisse.
Cette série de correctifs corrige le problème à un certain niveau.
Une autre possibilité est d'utiliser la syntaxe alternative pour le coredump_pattern. Le manuel indique que depuis 2.6.19 au lieu d'un modèle, vous pouvez utiliser un tuyau et un programme (avec des paramètres) qui gèrera le vidage. Ergo, vous aurez le contrôle du vidage qui sera écrit où (/ dev / null étant le candidat évident pour vos cœurs inutiles).
Ce correctif mérite également un peu d'attention: http://linux.derkeiler.com/Mailing-Lists/Kernel/2010-06/msg00918.html
la source
consultez ce lien, il peut être utile
https://publib.boulder.ibm.com/httpserv/ihsdiag/coredumps.html
la source
Il semble que vous puissiez exécuter ulimit -c (en supposant que vous utilisez bash) pour limiter la taille du vidage de mémoire.
Voir: /ubuntu/220905/how-to-remove-limit-on-core-dump-file-size
et
http://ss64.com/bash/ulimit.html
la source