redirección en segundo plano

redirección en segundo plano

Escribí un programa en Python que imprimía algún mensaje. Quiero que este programa pase a segundo plano e imprima su mensaje en un archivo. Entonces escribí en bash: python program > message &. Problema: el mensaje aparece (con cat o vi) solo cuando interrumpo el programa. ¿Alguien podría explicarme dónde está el problema y si hay una solución fácil?

Respuesta1

Python utiliza almacenamiento en búfer completo cuando su salida no es un tty.

Ejecute su programa con python -u-- lo que hará que stdout y stderr no tengan búfer en python3, y también stdin en python2.

Tenga en cuenta que esto no tiene nada que ver con el programa que se ejecuta en segundo plano, sino con el hecho de que su salida estándar no es un tty.

Respuesta2

¿Podría Flush ayudarte aquí? Espero que enlazar a otros sitios no sea un problema. verhttps://stackoverflow.com/questions/230751/how-to-flush-output-of-print-function

información relacionada