Python 後臺運行



命令後面加&符號

python /data/python/server.py >python.log &
說明:     
1、 > 表示把標準輸出(STDOUT)重定向到 那個文件,這裏重定向到了python.log    
2、 & 表示在後臺執行腳本,這樣可以到達目的,但是,我們退出shell窗口的時候,必須用exit命令來退出,
否則,退出之後,該進程也會隨着shell的消失而消失(退出、關閉)


使用nohup

nohup python /data/python/server.py > python.log3 2>&1 &

說明:
1、 1是標準輸出(STDOUT)的文件描述符,2是標準錯誤(STDERR)的文件描述符     1> python.log 簡化爲 > python.log,表示把標準輸出重定向到python.log這個文件
2、2>&1 表示把標準錯誤重定向到標準輸出,這裏&1表示標準輸出   
爲什麼需要將標準錯誤重定向到標準輸出的原因,是因爲標準錯誤沒有緩衝區,而STDOUT有。   
這就會導致  commond > python.log  2> python.log 文件python.log被兩次打開,而STDOUT和 STDERR將會競爭覆蓋,這肯定不是我門想要的
3、好了,我們現在可以直接關閉shell窗口,而不用再輸入exit這個命令來退出shell了

在python運行中卻查看不到輸出

因爲:
python的輸出有緩衝,導致python.log3並不能夠馬上看到輸出。
使用-u參數,使得python不啓用緩衝。
所以改正命令,就可以正常使用了

nohup python -u test.py > out.log 2>&1 &






發佈了115 篇原創文章 · 獲贊 49 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章