Hallo Liste,
ich bin auf der Suche nach einer Art Ringpuffer, in die ich z.B. die Ausgabe eines lang laufenden Prozesses forwährend schreiben lassen möchte, um dann nur die letzen n Zeilen zu lesen.
Konkret geht es um einen Prozess, an den ich mich gern per strace hängen möchte, da dieser hin und wieder mit einem segfault aussteigt. Der Fehler lässt sich leider nicht reproduzieren, so dass ich auf das segfault warten muss.
gdb oder ähnliches, um core-Dumps auszuwerten, sind tabu, da der Prozess auf einem Live-System läuft, auf dem ich keine Debug-Version mit Symboltabellen installieren kann.
Viele Grüße, Marian
Hallo Marian,
Marian Neubert marian@tesla-crew.de (Mo 12 Dez 2011 15:29:31 CET):
Hallo Liste,
ich bin auf der Suche nach einer Art Ringpuffer, in die ich z.B. die Ausgabe eines lang laufenden Prozesses forwährend schreiben lassen möchte, um dann nur die letzen n Zeilen zu lesen.
Ohne lange zu probieren würde ich „| tail -f -“ vorschlagen. Allerdings beginnt das dann erst zu schreiben, wenn die schreibende Seite der Pipe aufhört.
Konkret geht es um einen Prozess, an den ich mich gern per strace hängen möchte, da dieser hin und wieder mit einem segfault aussteigt. Der Fehler lässt sich leider nicht reproduzieren, so dass ich auf das segfault warten muss.
mkfifo /tmp/fifo strace -o /tmp/fifo -p …
tail -f /tmp/fifo
Ich weiß aber nicht, was das strace macht, wenn an der Fifo kein Leser mit ist.
Oder ist das alles viel zu kompliziert gedacht und es geht viel einfacher? (Ja, sicher, ein paar Zeilen Perl tun es auch…)
Hallo Heiko,
Am 12.12.2011 15:46, schrieb Heiko Schlittermann:
Konkret geht es um einen Prozess, an den ich mich gern per strace hängen möchte, da dieser hin und wieder mit einem segfault aussteigt. Der Fehler lässt sich leider nicht reproduzieren, so dass ich auf das segfault warten muss.
mkfifo /tmp/fifo strace -o /tmp/fifo -p … tail -f /tmp/fifo
Ich weiß aber nicht, was das strace macht, wenn an der Fifo kein Leser mit ist.
strace wird dann stehen bleiben, bis jemand die Daten abholt - nützt also nur bedingt etwas.
Ich glaube, ich nehme jetzt am besten screen und blätter mich dann mittels copy-mode durch den buffer zurück. Drängelt nämlich zeitlich etwas...
Danke /Marian
Marian Neubert marian@tesla-crew.de (Mo 12 Dez 2011 16:05:11 CET):
Hallo Heiko,
Am 12.12.2011 15:46, schrieb Heiko Schlittermann:
Konkret geht es um einen Prozess, an den ich mich gern per strace hängen möchte, da dieser hin und wieder mit einem segfault aussteigt. Der Fehler lässt sich leider nicht reproduzieren, so dass ich auf das segfault warten muss.
mkfifo /tmp/fifo strace -o /tmp/fifo -p … tail -f /tmp/fifo
Ich weiß aber nicht, was das strace macht, wenn an der Fifo kein Leser mit ist.
strace wird dann stehen bleiben, bis jemand die Daten abholt - nützt also nur bedingt etwas.
Sobald das tail gestartet wurde, liest ja jemand, und Du kannst es starten, sobald die FIFO angelegt wurde. Stehenbleiben darf es halt nicht.
Am 12.12.2011 16:08, schrieb Heiko Schlittermann:
Marian Neubertmarian@tesla-crew.de (Mo 12 Dez 2011 16:05:11 CET):
Hallo Heiko,
Am 12.12.2011 15:46, schrieb Heiko Schlittermann:
Konkret geht es um einen Prozess, an den ich mich gern per strace hängen möchte, da dieser hin und wieder mit einem segfault aussteigt. Der Fehler lässt sich leider nicht reproduzieren, so dass ich auf das segfault warten muss.
mkfifo /tmp/fifo strace -o /tmp/fifo -p … tail -f /tmp/fifo
Ich weiß aber nicht, was das strace macht, wenn an der Fifo kein Leser mit ist.
strace wird dann stehen bleiben, bis jemand die Daten abholt - nützt also nur bedingt etwas.
Sobald das tail gestartet wurde, liest ja jemand, und Du kannst es starten, sobald die FIFO angelegt wurde. Stehenbleiben darf es halt nicht.
Genau - und aus diesem Grund kann ich mir das FIFO und das tail drauf ja auch sparen und direkt die Ausgaben von strace auf der Konsole mitlesen ;o)
Mir gehts eher darum, dass ich z.B. morgen früh den Grund näher erkennen kann, falls die Nacht der Prozess stribt, ohne dass ich eine Shell auf dem System offen hab. Und dafür erschien mir screen jetzt auf die Schnelle doch am sinnvollsten - dort kann ich die "scrollback"-buffer ja fast nach belieben hochsetzen.
Danke trotzdem!
/Marian
Hallo Marian,
das ganze development-Zeugs unter linux ist mir ein wenig fremd aber mir fällt trotzdem spontan das fifo-Objekt des Filesystems ein. Nur so als Anregung.
Mit freundlichen Grüßen / Kind regards Ronny Seffner
lug-dd@mailman.schlittermann.de