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:
In der Variable EXEC steht das Java-Programm - So weit, so gut.
Wenn ich nun mehrere Sachen an die stdin schicke, wie z.B.:
Bekomme ich an der Ausgabe der stdin folgendes:
Und an der Ausgabe der stderr:
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:
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.
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
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
Code:
cat stdin
say hello1
say hello2
say hello3
say hello4
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: