Am 14.03.2019 um 17:35 schrieb Ralf Mattes:
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
Mit diesem Befehl weise ich im gleichen Script, gleich neben dem ulimit vorher den Platz und das Pattern zu, danach wird dann (ebenfalls im gleichen Script) das chrashende binary aufgerufen.
Und das Pattern steht dann auch kontrollierbar drin, nur ulimit -c zeigt 0. :(
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.
PAM hab ich nicht (bewußt). Ich hatte das ulimit wie gesagt vorher im /etc/profile - aber da wirkt es nur, wenn ich das binary manuell nach einloggen aufrufe.
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 ..?).
Ziemlich sicher, da es ein kleines Yocto-Linux ist. Vielen Dank trotzdem für den Input.
Gruss RalfD
Gruß Arno