您好,登錄后才能下訂單哦!
這篇文章主要講解了在python中使用nohup命令的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
nohup功能
nohup 是 no hang up 的縮寫,就是不掛斷的意思。
如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那么可以使用nohup命令,該命令可以在你退出帳戶/關閉終端之后繼續運行相應的進程。
實例操作
例如運行django項目
1.例如,進入項目目錄:
cd ding_month_1
2.運行下面程序:
nohup python ./manage.py runserver 0.0.0.0:8080&
3.此時,已經運行了。
注意事項:
原程序的的標準輸出被自動改向到當前目錄下的nohup.out文件,起到了log的作用。在nohup執行成功后直接點擊關閉程序按鈕關閉終端,會斷掉該命令對應的session,導致nohup對應的進程被通知一起shutdown。
所以在使用nohup命令后臺運行命令之后,需要使用exit正常退出當前賬戶,這樣才能保證命令一直在后臺運行。
補充知識:Python后臺運行—nohup及2>&1詳解
一. 代碼
nohup python my.py >> /usr/local/python/xxf/my.log 2>&1 &
nohup tomcat.sh > /dev/null 2>&1 &
二.nohup命令
nohup指不斷地運行,是no hang up的縮寫,指不間斷,不掛斷。運行一個進程的時候,不想讓其在你退出賬號時關閉,即可用nohup。
nohup在不規定的情況下,所以輸出內容會到nohup.out中
三.2>&1
0 表示stdin標準輸入,用戶鍵盤輸入的內容
1 表示stdout標準輸出,輸出到顯示屏的內容
2 表示stderr標準錯誤,報錯內容
2>&1是一個整體,>左右不能有空格,即將錯誤內容重定向輸入到標準輸出中去。
四. 整體意義及&
&為后臺運行
第一條代碼,以python環境不間斷的運行my.py這個腳本,并且將腳本輸出的內容重定向輸入my.log中(>>意為追加,如果用>會讓其中的內容清空)
my.py >> my.log 和my.py 1>>my.log相同,只是1(標準輸入)被省略了,而后面的my.log 2>&1 又將2(錯誤內容)輸入到標準輸出,然后前面的標準輸出又輸入到my.log中,意思錯誤和標準內容都會輸出到my.log中,其實代碼可拆成兩塊。
nohup python my.py 1>> /usr/local/python/xxf/my.log &
nohup python my.py 2>> /usr/local/python/xxf/my.log &
上面代碼就是將錯誤和標準都輸出到my.log,最初的代碼只是簡化了。
而加2>&1中的&是為了區別文件1和1(標準輸出),假如為2>1,那么不就成了將錯誤內容輸出到文件1中。
nohup tomcat.sh > /dev/null 2>&1 &也是一樣的,將錯誤和標準全部丟入/dev/null中,全部銷毀。
看完上述內容,是不是對在python中使用nohup命令的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。