溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

在python中使用nohup命令的方法

發(fā)布時(shí)間:2020-08-03 11:19:49 來(lái)源:億速云 閱讀:296 作者:小豬 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了在python中使用nohup命令的方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

nohup功能

nohup 是 no hang up 的縮寫(xiě),就是不掛斷的意思。

如果你正在運(yùn)行一個(gè)進(jìn)程,而且你覺(jué)得在退出帳戶時(shí)該進(jìn)程還不會(huì)結(jié)束,那么可以使用nohup命令,該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程。

實(shí)例操作

例如運(yùn)行django項(xiàng)目

1.例如,進(jìn)入項(xiàng)目目錄:

cd ding_month_1

2.運(yùn)行下面程序:

nohup python ./manage.py runserver 0.0.0.0:8080&

3.此時(shí),已經(jīng)運(yùn)行了。

注意事項(xiàng):

原程序的的標(biāo)準(zhǔn)輸出被自動(dòng)改向到當(dāng)前目錄下的nohup.out文件,起到了log的作用。在nohup執(zhí)行成功后直接點(diǎn)擊關(guān)閉程序按鈕關(guān)閉終端,會(huì)斷掉該命令對(duì)應(yīng)的session,導(dǎo)致nohup對(duì)應(yīng)的進(jìn)程被通知一起shutdown。

所以在使用nohup命令后臺(tái)運(yùn)行命令之后,需要使用exit正常退出當(dāng)前賬戶,這樣才能保證命令一直在后臺(tái)運(yùn)行。

補(bǔ)充知識(shí):Python后臺(tái)運(yùn)行—nohup及2>&1詳解

一. 代碼

nohup python my.py >> /usr/local/python/xxf/my.log 2>&1 &

nohup tomcat.sh > /dev/null 2>&1 &

二.nohup命令

nohup指不斷地運(yùn)行,是no hang up的縮寫(xiě),指不間斷,不掛斷。運(yùn)行一個(gè)進(jìn)程的時(shí)候,不想讓其在你退出賬號(hào)時(shí)關(guān)閉,即可用nohup。

nohup在不規(guī)定的情況下,所以輸出內(nèi)容會(huì)到nohup.out中

三.2>&1

0 表示stdin標(biāo)準(zhǔn)輸入,用戶鍵盤(pán)輸入的內(nèi)容

1 表示stdout標(biāo)準(zhǔn)輸出,輸出到顯示屏的內(nèi)容

2 表示stderr標(biāo)準(zhǔn)錯(cuò)誤,報(bào)錯(cuò)內(nèi)容

2>&1是一個(gè)整體,>左右不能有空格,即將錯(cuò)誤內(nèi)容重定向輸入到標(biāo)準(zhǔn)輸出中去。

四. 整體意義及&

&為后臺(tái)運(yùn)行

第一條代碼,以python環(huán)境不間斷的運(yùn)行my.py這個(gè)腳本,并且將腳本輸出的內(nèi)容重定向輸入my.log中(>>意為追加,如果用>會(huì)讓其中的內(nèi)容清空)

my.py >> my.log 和my.py 1>>my.log相同,只是1(標(biāo)準(zhǔn)輸入)被省略了,而后面的my.log 2>&1 又將2(錯(cuò)誤內(nèi)容)輸入到標(biāo)準(zhǔn)輸出,然后前面的標(biāo)準(zhǔn)輸出又輸入到my.log中,意思錯(cuò)誤和標(biāo)準(zhǔn)內(nèi)容都會(huì)輸出到my.log中,其實(shí)代碼可拆成兩塊。

nohup python my.py 1>> /usr/local/python/xxf/my.log &
nohup python my.py 2>> /usr/local/python/xxf/my.log &

上面代碼就是將錯(cuò)誤和標(biāo)準(zhǔn)都輸出到my.log,最初的代碼只是簡(jiǎn)化了。

而加2>&1中的&是為了區(qū)別文件1和1(標(biāo)準(zhǔn)輸出),假如為2>1,那么不就成了將錯(cuò)誤內(nèi)容輸出到文件1中。

nohup tomcat.sh > /dev/null 2>&1 &也是一樣的,將錯(cuò)誤和標(biāo)準(zhǔn)全部丟入/dev/null中,全部銷毀。

看完上述內(nèi)容,是不是對(duì)在python中使用nohup命令的方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI