Pb flush avec "boucle infinie" et pipe
Bonjour,
Je veux faire une sorte de monitoring de la heap Java d'un processus Java. Pour cela j'ai écrit la commande suivante qui ne marche pas.
Code:
1 2 3
|
"$JAVA_HOME"/bin/jstat -gc $pid 10s | sed 's/ \+/,/g' >"$TMPDIR/JiniLus_${pid}_heap.csv" &
# |
J'ai déjà modifié mon script pour le faire fonctionner autrement, mais j'avoue que je ne comprends pas pourquoi cette ligne ne fonctionne pas, et j'aime bien comprendre ce que je fais. C'est pourquoi je m'adresse à votre sagacité.
J'ai effectué quelques tests pour "isoler" le problème et voici les résultats étranges (pour moi) que j'ai obtenus:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
#1 Ceci fonctionne
while true; do echo aaa; sleep 1; done | tr a b
#1 Ceci fonctionne
while true; do echo aaa; done | tr a b | cat
#3 Ceci ne fonctionne pas (semble bloqué)
while true; do echo aaa; sleep 1; done | tr a b | cat
#4 Ceci ne fonctionne pas mais fic est rempli
while true; do echo aaa; sleep 1; done | tee fic | tr a b | cat
# |
Je précise que j'ai essayé ces commandes sur cygwin+bash et ubuntu+dash.
Vous avez une idée ?