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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?