Linux伺服器後臺執行python程式碼並重定向儲存輸出結果
阿新 • • 發佈:2020-12-07
第一步,到要執行的python程式根目錄
第二步,後臺執行python程式,並將結果重定向到某個結果檔案中,格式如下:
nohup python -u XXX.py >> result.txt 2>&1 &
解釋
code | description |
---|---|
>> | 為重定向追加輸出log到現有result.txt檔案;如果寫>重定向的話,則是清空原檔案result.txt,再輸入 |
python -u | 這個非常重要, 由於python有緩衝機制,print不一定會立刻輸出到檔案!!! 加了-u可以讓stdout等強制無緩衝, 立刻輸出到檔案! |
2>&1 | 將錯誤重定向到標準輸出中(意思是將不同等級的輸出都顯示在一個檔案裡) |
最後一個& | 表明此python在後臺執行 |
對上面的數字表示的含義
補充解釋
- 0:代表 – stdin (standard input)標準輸入
- 1: 代表– stdout (standard output)標準輸出
- 2:代表– stderr (standard error) 標準錯誤
- 2>&1: 是將標準錯誤(2)重定向到標準輸出(&1),標準輸出(&1)再被重定向輸入到result.txt檔案中。
演示如下:
其中 [1] 2294
表示當前後臺程式的pid號。
其他
-
想要關閉後臺執行的這個程式,如下:
kill 2294 # kill + pid 即可
-
想要檢視輸出的結果,在同一目錄下:
cat result.txt