redirecionamento em segundo plano

redirecionamento em segundo plano

Eu escrevi um programa em Python que imprime alguma mensagem. Quero que este programa vá para segundo plano e imprima sua mensagem em um arquivo. Então escrevi no bash: python program > message &. Problema: a mensagem aparece (com cat ou vi) somente quando interrompo o programa. Alguém poderia me explicar onde está o problema e se existe uma solução fácil?

Responder1

Python está usando buffer completo quando sua saída não é um tty.

Execute seu programa com python -u- o que tornará o stdout e o stderr sem buffer em python3, e também o stdin em python2.

Observe que isso não tem nada a ver com o programa sendo executado em segundo plano, mas com o fato de que seu stdout não é um tty.

Responder2

Flush poderia ajudá-lo aqui? Espero que links para outros sites não sejam um problema. verhttps://stackoverflow.com/questions/230751/how-to-flush-output-of-print-function

informação relacionada