Am Donnerstag, 14. März 2019 14:16 CET, "Arno Steffens" epsi@gmx.de schrieb:
Hallo, ich möchte das ein chrashendes Programm einen core dump erzeugt.
Tut es das wirklich nicht? Manchmal enden die an eigenartigen Plätzen. Was sagt denn:
$ sudo sysctl -a | grep kernel.core_pattern
oder auch:
$ cat /proc/sys/kernel/core_pattern
Gelesen habe ich: Variante 1) in etc/profile die Zeile "ulimit -c unlimited" ergänzen Das funktioniert ganz prinzipiell. Da das Programm aber schon von einem init-script gestartet wird hilft das nicht - kein login.
Variante 2) Auch ein Eintrag in das das Programm startende init-script wirkt nicht.
Variante 3) Dann habe ich noch die Datei /etc/limits gefunden.
Den auskommentierten Eintrag: #* L2 D6144 R2048 S2048 U32 N32 F16384 T5 C0 I20 O0 geändert zu
- L2 D6144 R2048 S2048 U32 N32 F16384 T5 C16384 I20 O0
oder auch nur
- C50000
bewirkt ebenfalls nichts.
Zum Glück :-) Die Datei '/etc/limits' wird vom PAM-Subsystem benutzt. Das schlägt aber gemeiniglich nur beim Login und anderen Authenifizierungen zu.
Die 4. Alternative (in Programm eincompilieren) möchte ich eigentlich nicht.
Weiß jemand wie's trotzdem geht? Und warum die Varianten 2 und 3 nicht gehen?
Bist Du sicher dass Du/Deine Herzensdistro nicht systemd benutzt? Der hat u.U. dann den systemd-coredump installiert (das solltest Du aber in der Ausgabe der oben genannten Shell Comands sehen - da steht dann so was wie '|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e '). Falls systemd da seine schmutzigen Hände drinn hat landen die Dumps (Drumroll please) im Journal. Von dort kann man sie mit 'coredumpctl' auflisten/anzeigen und dergl. mehr (what where they smoking ..?).
Gruss RalfD
Gruß Arno