[gull] stdin, stdout dans un fichier

Blaise Vogel bvogel at altux.ch
Tue Aug 24 16:34:27 CEST 2010


Je me réponds, vu que l'on vient de me donner la solution:
python -u
enlève le buffering.

Blaise

----- "Blaise Vogel" <bvogel at altux.ch> a écrit :

> ----- "Félix Hauri" <felix at f-hauri.ch> a écrit :
> 
> ...
> > > Je duplique les sorties stdout et stderr d'une commande sur stdout
> > et dans un fichier, soit:
> > > command 2>&1|tee result.log
> > >
> > > Par contre la commande peut durer pas mal de temps, et l'affichage
> > sur stdout ne se fera que à la fin de la commande. J'ai pensé à un
> > truc un peu "crade":
> > > touch result.log
> > > tail -n0 -f result.log &
> > > command >>result.log 2>&1
> >
> > Cette solution ne me parait pas crade du tout. Tu ``initialises''
> > un pointeur de fichier avant de l'utiliser...
> > Non, rien à redire...
> Bof, je rêvais d'une commande en 1 ligne ...
> 
> >
> > Il s'agit d'un problème de buffer en sortie, il existe des moyens
> > de désactiver, mais je n'ai pas réussi à reproduire ta situation:
> >
> > $ ( echo -n coucou ; sleep 3 ) | tee /dev/null
> >
> > affiche instantannément ``coucou''.
> >
> > Quelle distribution utilises-tu et quel est la ``command'' que tu
> > lances?
> Bonne question. Debian Lenny ou Squeeze. Par contre la commande est un
> script python avec des sorties par 'print ...' et dans ce cas le
> retour ne se fait pas immédiatement. Je crois qu'il va être plus
> intelligent de reprendre ces scripts et d'y ajouter le module syslog
> ;-)
> Pour test:
> 
> blaise at x02:~$ cat test.py
> import time
> print 'a'
> time.sleep(2)
> print 'b'
> 
> blaise at x02:~$ python test.py|tee /dev/null
> 
> Je remarque que j'ai le même comportement si je renvoie le retour de
> la commande dans un fichier, le fichier est écrit seulement à la fin
> de la commande. Par exemple:
> blaise at x02:~$ python test.py >> result.log
> 
> 
> Blaise Vogel
> 
> 
> _______________________________________________
> gull mailing list
> gull at forum.linux-gull.ch
> http://forum.linux-gull.ch/mailman/listinfo/gull

-- 
Blaise Vogel

Altux SA
Route de Lavaux 235
1095 Lutry
+41 (0)21 796 12 49
www.altux.ch


More information about the gull mailing list