[Python] Python e redirezione output

Valerio Pachera sirio81 a gmail.com
Gio 19 Maggio 2011 15:30:04 CEST


Il 19 maggio 2011 15:22, Valerio Pachera <sirio81 a gmail.com> ha scritto:
> Aggiungo un'altra osservazione: se uccido il processo (con kill e non
> kill -9), tutto quello che era nel buffer non viene scritto.

Ne aggiungo altre due, poi vado a leggere il link di Manlio :-)

./tmp.py &> tmp.log &
mv tmp.log tmp.log2
tail -f tmp.log2

Ho rinominato il file di log mentre ci scriveva dentro (ongi 5 sec col flush).
Mi aspettavo che il file venisse ricreato o che la redirezione si
interrompesse, invece l'output CONTINUA ad essere scriptto in tmp.log2
!

Al contrario

./tmp.py &> tmp.log &
gzip tmp.log
ls tmp.log*
  tmp.log.gz

Se comprimo il file come farebbe il programma logrotate, il file di
log non viene ricreato né va ascrivere su tmp.log.gz.
La redirezione, a mio avviso, si interrompe ma lo script continua a girare.


Maggiori informazioni sulla lista Python