1. 將程序的輸出顯示到屏幕,同時寫入到log文件
nohup python -u main.py 2>&1 | tee -a log.txt &
-
nohup 放在命令的開頭,表示不掛起(no hang up),也即,關閉終端或者退出某個賬號,進程也繼續保持運行狀態,一般配合&符號一起使用。如nohup command &
-
加上-u(unbuffered)參數后,表示python執行時,會強制其標準輸出也同標準錯誤一樣不通過緩存直接打印到屏幕。
如果不加u的話可能會發現print的內容無法顯示到屏幕上。 -
2>&1 也就表示將錯誤重定向到標準輸出上。2表示標準錯誤,1表示標準輸出。這里的&相當于轉義字符,如果不加&則會變成把標準錯誤2輸出到名為1的文件中。
-
tee -a 表示在文件末尾追加,不會覆蓋原本內容。
-
& 放在命令到結尾,表示后臺運行,防止終端一直被某個進程占用,這樣終端可以執行別到任務。
參考:https://blog.csdn.net/weixin_43693967/article/details/129866980