阿里云后臺(tái)運(yùn)行python程序(后臺(tái)運(yùn)行scrapy爬蟲)的方法

1. 問題引入

通過(guò)Xshell工具連接遠(yuǎn)程阿里云服務(wù)器后,如何運(yùn)行python程序呢?這個(gè)大家都知道,python命令啦。

舉個(gè)栗子:通過(guò)Xshell在某個(gè)目錄下輸入命令:python test.py就執(zhí)行了test.py這個(gè)程序。

但是如果我這個(gè)test.py要運(yùn)行好久呢?比如運(yùn)行好幾天,難道要一直開著Xshell工具,開著本地電腦嗎?有沒有關(guān)掉Xshell連接服務(wù)器上的程序依舊運(yùn)行的方法呢?

當(dāng)然有啦~

2. 正文

本文就是來(lái)講一下如何后臺(tái)運(yùn)行python程序的。

關(guān)鍵的命令:nohup

只需要輸入下面的命令就可以在后臺(tái)一直執(zhí)行python程序啦

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

這條命令的意思是,執(zhí)行test.py程序,并把程序中執(zhí)行的情況記錄到test.log文件中,包括程序異常、程序中打印的信息等。
PS:
也可以把上述命令寫成nohup python -u test.py > nohup.out 2>&1 &唯一的區(qū)別就是把日志信息寫到nohup.out文件中去了,兩種做法都行。

輸入后,回車。會(huì)打印出一個(gè)進(jìn)程號(hào)(我這里是4935)。


在這里插入圖片描述

通過(guò)ps -A命令查看當(dāng)前運(yùn)行的所有進(jìn)程。你就會(huì)發(fā)現(xiàn)剛才生成的進(jìn)程號(hào)在列出的進(jìn)程里面啦。

關(guān)掉Xshell,重新連接,再次ps -A命令查看當(dāng)前運(yùn)行的所有進(jìn)程,哈哈,剛才的那個(gè)進(jìn)程號(hào)還在。說(shuō)明test.py程序還在執(zhí)行。。。

3. 應(yīng)用場(chǎng)景

這個(gè)方法有沒有用呢?當(dāng)然有用啦?。∮锰幋蟠蟮?!

  • 比如,我在處理一個(gè)220M的文txt文件,需要對(duì)其中的所有字符進(jìn)行替換操作,在本地運(yùn)行的話,運(yùn)行3天也運(yùn)行不完,總不能一直開著我的筆記本吧。買了個(gè)阿里云服務(wù)器閑著也是閑著,用這個(gè)方法就可以在服務(wù)器上一直運(yùn)行啦~

  • 再比如,前一段寫爬蟲,也是這種情況。爬時(shí)光網(wǎng)所有短評(píng),長(zhǎng)評(píng),用scrapy框架寫的,運(yùn)行在本地的話要運(yùn)行幾天,不知道要多久。這時(shí)候又可以放到阿里云服務(wù)器運(yùn)行了~

這里稍微記錄一下如何在遠(yuǎn)程服務(wù)器端后臺(tái)運(yùn)行scrapy爬蟲程序:

我們都知道,在本地運(yùn)行scrapy程序只需要命令scrapy crawal myspider,那么在服務(wù)器端,如何運(yùn)用上述后臺(tái)運(yùn)行python文件的方法來(lái)運(yùn)行scrapy程序呢?

簡(jiǎn)單!再寫一個(gè)python文件,如run.py,內(nèi)容如下:

import os

if __name__ == '__main__':
    os.system("scrapy crawl myspider")

然后執(zhí)行:nohup python -u run.py > run.log 2>&1 &

很顯然了,就是在python文件中調(diào)用系統(tǒng)命令,運(yùn)行scrapy crawl myspider這條命令啦。通過(guò)后臺(tái)運(yùn)行這個(gè)run.py文件,來(lái)執(zhí)行scrapy crawl myspider這條命令,從而達(dá)到后臺(tái)運(yùn)行scrapy爬蟲程序的目的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容