J'ai créé un script python qui communique avec un serveur Web à l'aide d'une boucle infinie. Je veux enregistrer toutes les données de communication dans un fichier et les surveiller à partir du terminal en même temps. J'ai donc utilisé la commande tee comme ça.
python client.py | tee logfile
cependant, je n'ai rien reçu du terminal ni du fichier journal. le script python fonctionne bien. que se passe-t-il ici? est-ce que je manque quelque chose?
quelques conseils seraient appréciés. Merci d'avance.
De man python
:
-u Force stdin, stdout and stderr to be totally unbuffered. On systems
where it matters, also put stdin, stdout and stderr in binary mode. Note
that there is internal buffering in xreadlines(), readlines() and file-
object iterators ("for line in sys.stdin") which is not influenced by
this option. To work around this, you will want to use "sys.stdin.read‐
line()" inside a "while 1:" loop.
Vous pouvez donc:
/usr/bin/python -u client.py >> logfile 2>&1
Ou en utilisant tee
:
python -u client.py | tee logfile