Dies kann nicht die beste Formulierung für die Frage sein. Ich versuche, 2 Dateien gleichzeitig auf meinem Bildschirm zu sehen. Ich betreiben:Wie funktioniert multitail seinen Ausgangspuffer?
multitail ~/path/to/somefile.err ~/path/to/somefile.out
Ich habe einen Python-Skript mit den folgenden Zeilen:
sys.stdout = open('~/path/to/somefile.out', 'a')
sys.stderr = open('~/path/to/somefile.err', 'a')
Mein multitail Befehl scheint nur dann ausgegeben, meine .out-Datei, unabhängig davon, welche Reihenfolge ich die Dateien in dem setzen Befehl. Ich
Nachweis erbracht, dass mein Skript in der Tat auf die Dateien schreibt. Was auch interessant ist, war, dass, wenn ich den folgenden Befehl:
echo "text" >> ~/path/to/somefile.err
Urplötzlich ich alle die Ausgabe von der err-Datei, in dem multitail Bildschirm (einschließlich dem, was vorher nicht angezeigt hat) !
Was hier vor sich geht, dass ich nicht sehen kann?
P.S. Das ist das erste Mal, dass ich Multitail benutze, vielleicht habe ich etwas Einfaches übersehen. Wenn es etwas bedeutet, ich bin mit CentOS 7.
die Stderr (.err) wird wahrscheinlich gepuffert und nachdem genügend Informationen gepuffert wurde dann wird es alles erscheinen. Geben Sie für 'unbuffer' auf Ihrem Rechner, und falls vorhanden, können Sie' unbuffer' einzelner Ausgang cmds (nicht sicher, was Sie in 'python' tun.). Sie können wahrscheinlich 'python3 mypython.py' unbuffered. In der GNU coreutils gibt es auch 'stdbuf', die die gleiche Sache tut, müssen aber möglicherweise anders genannt werden. Überprüfen Sie 'man stdbuf'. Viel Glück. – shellter