Archiv verlassen und diese Seite im Standarddesign anzeigen : Sämtliche Debugmeldungen in Datei umleiten!
Hallo!
ich habe ein Problem mit der Ausgabeumleitung in der Shell, die nicht tut, was sie soll!
Ich starte ein Programm aus der Shell und leite die Debugmeldungen, die in der Shell ab und zu ausgeworfen werden mit dem ">" in eine Datei um.
runvdr > /var/log/vdr.log
Das Problem: Es wandert nur ein geringer Teil der tatsächlichen Ausgaben in die Datei. Die Ausgabe müsste doch exakt der in der Shell ohne Umleitung entsprechen.
Woran liegt das?
Gruß
Logausgaben werden oft nach stderr geleitet.
Programm 2>&1 > logleitet alle ausgaben nach log,
Programm 2> logleitet nur die Ausgaben an stderr nach log.
Klasse, wenn das klappt!!!!
Besten Dank!
:)
RapidMax
29-09-2005, 22:28
Logausgaben werden oft nach stderr geleitet.
Programm 2>&1 > log
Kleine Korrektur:
Programm > log 2>&1
Gruss, Andy
Kleine Korrektur:
Programm > log 2>&1
Danke Andy, das sieht schon wesentlich besser aus. Das erste hat die gleiche Wirkung wie die einfache Umleitung. Das klappt jetzt, was die Applikation (vdr) angeht. Die Ausgabem vom Plugin liefert er leider immer noch nicht vollständig. Gibts noch andere Möglichkeiten, die gesamten Ausgaben in der Shell inkl. der Kindprozesse komplett zu bekommen? Trotzdem besten Dank erstmal.
Gruß
Rupert
Ich habe das noch einmal ganz genau getestet und tatsächlich gehen keine Informationen verloren! Sie werden nur nicht zeitnah ins Log geschrieben. Erst wenn etwa 82 Zeilen vorhanden sind werden die ins Log geschrieben! Kann man mir das jemand erklären, und eine Lösung anbieten?
Wenn man zwischendurch von einer Shell ein echo test > log absetzt wird "test" sofort ins Log geschrieben.
Gruß
baumgartner
30-09-2005, 13:12
was ist das denn für ein programm, oder worin ist es geschrieben?
Das ist der VDR (Digitaler Videorecorder), aber der hat damit nichts zu tun, denke ich mal. Startet man den aus der Shell sind ja alle Meldungen da, dass ist ja das Merkwürdige.
Gruß
RapidMax
30-09-2005, 23:51
Da schlägt der Buffer zu. Normalerweise werden bei Streams eine gewisse Menge an Daten gebuffert, bevor sie weitergereicht werden.
Gruss, Andy
Da schlägt der Buffer zu. Normalerweise werden bei Streams eine gewisse Menge an Daten gebuffert, bevor sie weitergereicht werden.
Gruss, Andy
Kann man den vielleicht minimieren?
ich habe jetzt eine nicht sehr elegante Lösung gefunden, aber sie funktioniert.
Ausgabe nach Terminal 8 umleiten
/usr/local/bin/vdr --terminal=/dev/tty8"
und mit watch reinschauen und in Datei umleiten
watch -n2 fold -w 80 /dev/vcs8 | tee /var/log/vdr.log
Nicht sehr hübsch, das Ganze...
Gruß, Rupert
baumgartner
03-10-2005, 12:03
kommt drauf an, hast du den source code für das programm.
in perl kann man mit $| =0 den buffer deaktivieren.
unter C müsst ich nachschauen, unter www.pronix.de wirst du sicha fündig
btw: die aktuelle lösung ist wirklich hässlich!
Moin Rupert,
Kann man den vielleicht minimieren?
ich habe jetzt eine nicht sehr elegante Lösung gefunden, aber sie funktioniert.
Ausgabe nach Terminal 8 umleiten
/usr/local/bin/vdr --terminal=/dev/tty8"
und mit watch reinschauen und in Datei umleiten
watch -n2 fold -w 80 /dev/vcs8 | tee /var/log/vdr.log
Du sach mal, kannst Du nicht einfach direkt Deine log-Datei angeben, also
/usr/local/bin/vdr --terminal=/var/log/vdr.log
bzw. vielleicht gibt's bei dem vdr ja 'n entsprechend anderslautenden Parameter ?
MfG,
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.