1. 程式人生 > 其它 >Linux伺服器後臺執行python程式碼並重定向儲存輸出結果

Linux伺服器後臺執行python程式碼並重定向儲存輸出結果

技術標籤:python伺服器linux運維

第一步,到要執行的python程式根目錄
Linux上演示程式碼
第二步,後臺執行python程式,並將結果重定向到某個結果檔案中,格式如下:

nohup python -u XXX.py >> result.txt 2>&1 &

解釋

codedescription
>>為重定向追加輸出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號。

其他

  1. 想要關閉後臺執行的這個程式,如下:

    kill 2294    # kill + pid 即可
    
  2. 想要檢視輸出的結果,在同一目錄下:

    cat result.txt