2017-01-24 3 views
0

Ich versuche, die Protokolle meiner unten Befehl in eine Textdatei wie unten zu greifen:Wie erhalte ich Logs in einer Datei, wenn ich den Befehl timeout verwende?

timeout 10 glxheads &> test.txt 

Aber leider bin ich nicht keine Protokolle in der Textdatei durch diesen Ansatz übertragen bekommen.

Infact jeder einfache Befehl unter Timeout nicht die Ausgabe an eine Datei ausgegeben.

Hinweis: unter Befehl funktioniert Das,

glxheads &> test.txt 

Könnte jemand irgendwelche Ideen vorschlagen, um dieses Problem zu bekommen?

Danke!

+1

prüft die Rezepte aus diesem Thread http out: // unix.stackexchange.com/q/25372/17649 ('unbuffer',' stdbuf' usw.) –

+0

Ich kann es nicht reproduzieren. Ich habe timeout mit zwei Befehlen aufgerufen: einer, der in das Zeitintervall passt, und einem anderen, der das nicht tut. Beide funktionierten wie erwartet: Zuerst schrieben sie die gesamte Ausgabe zum Loggen und die zweite schrieb nur einen Teil ihrer Ausgabe. Sind Sie sicher, dass die Ausgabe in den ersten 10 Sekunden erfolgt? – Asalle

+0

Ich habe den gleichen Test wie @Asalle und ich kann bestätigen, dass ich das Problem nicht reproduzieren kann. Alles funktioniert wie erwartet. Welche Version von 'timeout' liegst du? Auf welchem ​​System? mit welcher Schale? Versuchen Sie, es als '\ timeout' zu nennen, um sicher zu sein, dass Sie keinen Alias ​​aufrufen ... – Dario

Antwort

0

Gemäß dem Link von Dmitri angegeben, konnte ich dieses Problem beheben, indem Sie folgendermaßen vorgehen:

stdbuf -oL -eL timeout 10 glxheads &> test.txt 

oder mit

unbuffer timeout 10 glxheads &> test.txt 
Verwandte Themen