後台重定向

後台重定向

我用 Python 編寫了一些程式來列印一些訊息。我希望該程式轉到後台並將其訊息列印在文件中。所以我在 bash 中寫道:python program > message &。問題:僅當我中斷程式時才會出現該訊息(使用 cat 或 vi)。有人可以解釋一下問題出在哪裡以及是否有簡單的解決方案?

答案1

當 Python 的輸出不是 tty 時,它使用完全緩衝。

使用python -u-- 運行程序,這將使 python3 中的 stdout 和 stderr 以及 python2 中的 stdin 無緩衝。

請注意,這與後台運行的程式無關,而是與它的 stdout 不是 tty 這一事實有關。

答案2

沖洗可以幫助你嗎?我希望連結到其他網站不是問題。看https://stackoverflow.com/questions/230751/how-to-flush-output-of-print-function

相關內容