Nehmen wir an, ein (sehr) großer Prozess stürzt ab und stürzt den Kern ab, und wir kennen die Ursache aus anderen Informationen (möglicherweise eine Bestätigungsnachricht, möglicherweise etwas anderes).
Gibt es eine Möglichkeit zu verhindern, dass der Core Dump vollständig generiert wird, da es in diesem Fall eine Verschwendung ist?
Würde beispielsweise das Beenden von -9 eines Core-Dump-Prozesses die Generierung von Corefiles unterbrechen?
Wenn wir im Voraus wüssten, dass wir keine Core-Dumps wollen, könnten wir das ulimit natürlich entsprechend einstellen oder die verschiedenen Core-Dienstprogramme des Betriebssystems zur Dateisteuerung verwenden.
Bei dieser Frage geht es jedoch um die Phase "Core Dump bereits in Bearbeitung" ...
(Stellen Sie sich zum Beispiel vor, ich bin der Anforderer in /programming/18368242/how-to-bypass-a-2tb-core-dump-file-system-limit und möchte keine 5 verschwenden -6 TB Festplattenspeicher :))
Antworten:
Generell gilt: Nein, es gibt keine Möglichkeit, einen Coredump zuverlässig zu töten.
Davon abgesehen gibt es eine Möglichkeit (zumindest unter Linux) für kommerzielles * NIX wahrscheinlich auf keinen Fall
Die Möglichkeit besteht darin, dass die 3.x-Serie des Kernels das Schreiben von Dateien unterbrechen kann. Eine Möglichkeit besteht darin, den Thread zu finden, der den Dump ausführt, und wiederholt SIGKILL an ihn zu senden, bis er erfolgreich ist.
Diese Patch-Serie behebt das Problem bis zu einem gewissen Grad.
Eine andere Möglichkeit besteht darin, die alternative Syntax für das coredump_pattern zu verwenden. Das Handbuch besagt, dass Sie seit 2.6.19 anstelle eines Musters eine Pipe und ein Programm (mit Parametern) verwenden können, das den Dump behandelt. Ergo haben Sie die Kontrolle, welcher Dump wohin geschrieben wird (/ dev / null ist der offensichtliche Kandidat für Ihre nutzlosen Kerne).
Dieser Patch verdient auch ein wenig Aufmerksamkeit: http://linux.derkeiler.com/Mailing-Lists/Kernel/2010-06/msg00918.html
quelle
Check diesen Link aus, er kann hilfreich sein
https://publib.boulder.ibm.com/httpserv/ihsdiag/coredumps.html
quelle
Es sieht so aus, als könnten Sie ulimit -c ausführen (vorausgesetzt, Sie verwenden bash), um die Speicherauszugsgröße zu begrenzen.
Siehe: /ubuntu/220905/how-to-remove-limit-on-core-dump-file-size
und
http://ss64.com/bash/ulimit.html
quelle