Kann jemand erklären, wie die timeout
für piped Befehle funktioniert? Zum BeispielTimeout-Aufruf bei piped-Befehlen
timeout 2s a | b
Hier ist die timeout
nur für den a
Befehl angewendet?
Und wenn tatsächlich ein Timeout auftritt, würde dies zu einem Rohrbruch führen?
Ja, 'timeout' ist ein regulärer Befehl, kein eingebauter, also wird er mit den Argumenten' timeout', '2s' und' a' ausgeführt. Wenn die Zeitüberschreitung auftritt, wird die Pipe für "b" EOF anzeigen, sobald alle Daten darin gelesen wurden (weil es keinen Prozess mehr gibt, um in die Pipe zu schreiben). Aber das unterbrochene Rohr ist ein Problem auf der Schreibseite, nicht auf der Leseseite. –
@ JonathanLeffler: Vielen Dank, schöne Notiz auf Rohr :) – sjsam