Cat gibt nicht alles aus einer FIFO Pipe aus

G

Gast123

Hallo Leute,

ich arbeite an einem bash-Skript projekt, welches an die stdin eines Java-Programms Befehle sendet und die stderr des Programms ausgeben soll.
Gestartet wird das ganze so:
Code:
exec $EXEC 0<> stdin 1<> stdout 2<> stderr
In der Variable EXEC steht das Java-Programm - So weit, so gut.
Wenn ich nun mehrere Sachen an die stdin schicke, wie z.B.:
Code:
for i in {1..6}; do minectl survival query say hello$i; sleep 1; done
Bekomme ich an der Ausgabe der stdin folgendes:
Code:
cat stdin
say hello1
say hello2
say hello3
say hello4
Und an der Ausgabe der stderr:
Code:
cat stderr
2013-02-09 01:42:59 [INFO] [Server] hello5

Offensichtlich passieren hier zwei Dinge:
1) Was an der stdin ausgelesen wird, wird vom Programm nicht verarbeitet (Das ist eig. kein Problem da ich sie eh nur zum debuggen auslese)
2) Kommen nicht alle Eingaben an der stdin an oder werden verarbeitet.

Wenn ich ohne die stdin zu catten laufen lasse, passiert folgendes:
Code:
2013-02-09 01:50:34 [INFO] [Server] hello2
2013-02-09 01:50:37 [INFO] [Server] hello4
2013-02-09 01:50:39 [INFO] [Server] hello5

Es kommen auch nicht alle Eingaben verarbeitet aus dem Programm raus.

Wieso?

MfG

Schard

EDIT:
Oh mein Gott. Schon wieder habe ich ander falschen Stelle gesucht.
Das Problem waren nicht die Pipes oder cat, sondern das Java Programm, welches fehlerhafterweise in mehreren Instanzen lief, die gegenseitig ihre Ressourcen blockiert haben.
Jetzt funktioniert alles mit der o.g. Konfiguration einwandfrei.
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Themen

Rollei Mini Wifi Camcorder

X not starting anymore since filesystem was full

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

E-Mail Empfang, Aliases unter Debian Squeeze

HP PSC 2175 - CUPS druckt nicht

Zurück
Oben