美文网首页
阿里云后台运行python程序(后台运行scrapy爬虫)的方法

阿里云后台运行python程序(后台运行scrapy爬虫)的方法

作者: ChivalryJerry | 来源:发表于2019-08-26 15:52 被阅读0次

    1. 问题引入

    通过Xshell工具连接远程阿里云服务器后,如何运行python程序呢?这个大家都知道,python命令啦。

    举个栗子:通过Xshell在某个目录下输入命令:python test.py就执行了test.py这个程序。

    但是如果我这个test.py要运行好久呢?比如运行好几天,难道要一直开着Xshell工具,开着本地电脑吗?有没有关掉Xshell连接服务器上的程序依旧运行的方法呢?

    当然有啦~

    2. 正文

    本文就是来讲一下如何后台运行python程序的。

    关键的命令:nohup

    只需要输入下面的命令就可以在后台一直执行python程序啦

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

    这条命令的意思是,执行test.py程序,并把程序中执行的情况记录到test.log文件中,包括程序异常、程序中打印的信息等。
    PS:
    也可以把上述命令写成nohup python -u test.py > nohup.out 2>&1 &唯一的区别就是把日志信息写到nohup.out文件中去了,两种做法都行。

    输入后,回车。会打印出一个进程号(我这里是4935)。


    在这里插入图片描述

    通过ps -A命令查看当前运行的所有进程。你就会发现刚才生成的进程号在列出的进程里面啦。

    关掉Xshell,重新连接,再次ps -A命令查看当前运行的所有进程,哈哈,刚才的那个进程号还在。说明test.py程序还在执行。。。

    3. 应用场景

    这个方法有没有用呢?当然有用啦!!用处大大地!

    • 比如,我在处理一个220M的文txt文件,需要对其中的所有字符进行替换操作,在本地运行的话,运行3天也运行不完,总不能一直开着我的笔记本吧。买了个阿里云服务器闲着也是闲着,用这个方法就可以在服务器上一直运行啦~

    • 再比如,前一段写爬虫,也是这种情况。爬时光网所有短评,长评,用scrapy框架写的,运行在本地的话要运行几天,不知道要多久。这时候又可以放到阿里云服务器运行了~

    这里稍微记录一下如何在远程服务器端后台运行scrapy爬虫程序:

    我们都知道,在本地运行scrapy程序只需要命令scrapy crawal myspider,那么在服务器端,如何运用上述后台运行python文件的方法来运行scrapy程序呢?

    简单!再写一个python文件,如run.py,内容如下:

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

    然后执行:nohup python -u run.py > run.log 2>&1 &

    很显然了,就是在python文件中调用系统命令,运行scrapy crawl myspider这条命令啦。通过后台运行这个run.py文件,来执行scrapy crawl myspider这条命令,从而达到后台运行scrapy爬虫程序的目的。

    相关文章

      网友评论

          本文标题:阿里云后台运行python程序(后台运行scrapy爬虫)的方法

          本文链接:https://www.haomeiwen.com/subject/gscdectx.html