一、問題: 今天在部署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沒有後臺運行的意思
;