【已解決】利用nohup使得Python Flask項目在服務器上後臺運行

一、問題: 今天在部署Python Flask項目到線上的時候,在Ubuntu系統的虛擬環境中,運行項目可以正常訪問到api,但是在Xshell中,一旦Ctrl+C或者關閉ssh,他就停止了,api再也請求不到了。

二、nohup
1、nohup 是 no hang up 的縮寫,就是不掛斷的意思。
2、nohup命令:在系統上運行一個進程的時候,不想讓其在你退出賬號時關閉,即可用nohup命令。該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。
3、nohup在不規定的情況下,所以輸出內容會到nohup.out中。

三、nohup代碼
run.py爲Flask項目的啓動腳本,在python環境中不間斷的運行run.py,並且將標準內容和錯誤內容輸出到flask.log這個日誌文件中,即請求api若出現報錯信息即可通過日誌定位到問題

nohup python3 run.py >> /www/wwwroot/log/flask.log 2>&1 &

四、2>&1
0 表示stdin標準輸入,用戶鍵盤輸入的內容
1 表示stdout標準輸出,輸出到顯示屏的內容
2 表示stderr標準錯誤,報錯內容
2>&1是一個整體,>左右不能有空格,即將錯誤內容重定向輸入到標準輸出中去。

五、nohup和&的區別
1、&纔是後臺運行
2、nohup : 不掛斷的運行,注意並沒有後臺運行的功能,,就是指,用nohup運行命令可以使命令永久的執行下去,和用戶終端沒有關係,例如我們斷開SSH連接都不會影響他的運行,注意了nohup沒有後臺運行的意思

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章