scrapyd得部署得问题啊!!!!!!!!(全网最全)(linux小白专用)

使用场景!!!!!公司需要把爬虫放到服务器上运行,每天定时运行

首先,先在我们得服务器上安装我们得python3环境,centos7没有python3,有得是python2,所以我们得自己安装一个python3得环境。这个我就不解释了,自行百度啊。就是安装一个pip3和一个python3

最后我们安装上我们得scrapy ,scrapyd,还有一个是scrapyd-client这三个包。

1.按道理来说啊,我们安装上scrapy会给我们创建一个软连.接,但是不知道我得为啥没有,所以我自己得创建一个软连接

ls -s /usr/local/bin/scrapy /usr/bin/scrapy

这样应该就行了。不行得话你百度一下,反正就是这个道理。他的作用类似于我们配置环境变量,直接在cmd就能使用一些命令.
2.这一步和上面得同理,不知道为啥没有给我得scrapyd创建软连接
所以为我们得scrapyd创建一个软连接

ls -n /usr/local/python3/bin/scrapyd /usr/bin/scrapyd

这样就行了。
scrapyd得部署得问题啊!!!!!!!!(全网最全)(linux小白专用)_第1张图片
3.这是我们就需要配置一个我们的配置文件,让我们的scrapyd暴露在公网上,所以现在就需要我们写一个配置文件。
scrapyd得部署得问题啊!!!!!!!!(全网最全)(linux小白专用)_第2张图片
在上面个那个目录下创建我们的那个scrapyd.conf文件,这里面写我们的scapyd的配置信息。

[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 10
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port   = 6800
debug       = off
runner      = scrapyd.runner
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root

[services]
schedule.json     = scrapyd.webservice.Schedule
cancel.json       = scrapyd.webservice.Cancel
addversion.json   = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json  = scrapyd.webservice.ListSpiders
delproject.json   = scrapyd.webservice.DeleteProject
delversion.json   = scrapyd.webservice.DeleteVersion
listjobs.json     = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus

上面的那个0.0.0.0就是我们要暴露在我们的公网上。
4.这个时候启动我们的scrapyd的服务,在窗口中输入scrapyd就可以看到我们的启动成功的信息。
scrapyd得部署得问题啊!!!!!!!!(全网最全)(linux小白专用)_第3张图片
这是启动成功的信息。
这时候,我们在我们的浏览器就可以看到我们的scrapyd已经成功的运行了起来。
scrapyd得部署得问题啊!!!!!!!!(全网最全)(linux小白专用)_第4张图片
这里我发现这个玩意不能退出啊,这个狗日的。
一直在停留在刚才输出的那个地方,这就很烦人了。网上说是ctrl+z可以退出,这个命令的意思是,我们把当前的进程,暂停挂起放到后台。
4.1(已经执行了ctrl+z命令啊,在shell中)说一个命令啊jobs 查看当前的shell中后台的进程,包括运行的,停止的。此时。输入jobs看到
在这里插入图片描述
这里的1是我们的后台的进程号,一会要用啊,状态是stopped的
可以看到我们的scrapyd是在后台,但是他是停止的,所以我要启动他。启动我们的进程
又一个命令bg命令,用来启动我们的进程。
输入

bg %1

就好了,那个进程就启动了啊。
在这里插入图片描述

启动了啊,
在这里插入图片描述

这是你访问网页还是可以的,但是!!!!!!!!这样子写,我们的进程只能在当前的shell中用行,只要我们一关闭我们当前的shell,这个进程立马就停了,我们的网页上也就访问不到了。不信你可以看一下。
此时我们再介绍一个命令啊,nuhup 这个命令,这个命令是也和前面的差不多,他和&的区别啊

&的意思是在后台运行, 什么意思呢? 意思是说, 当你在执行 ./start.sh & 的时候, 即使你用ctrl C, 那么start.sh照样运行(因为对SIGINT信号免疫)。 但是要注意, 如果你直接关掉shell后, 那么,start.sh进程同样消失。 可见, &的后台并不硬(因为对SIGHUP信号不免疫)。

nohup的意思是忽略SIGHUP信号, 所以当运行nohup ./start.sh的时候, 关闭shell, 那么start.sh进程还是存在的(对SIGHUP信号免疫)。 但是, 要注意, 如果你直接在shell中用Ctrl C, 那么start.sh进程也是会消失的(因为对SIGINT信号不免疫)

这是别人写的她两的区别
5这里我们用nohup创建我们的进程:
先杀死之前的进程;
scrapyd得部署得问题啊!!!!!!!!(全网最全)(linux小白专用)_第5张图片
现在就不可以访问了

nohup scrapyd &

这时我们就把我们的scrapyd放到后台了,而且不受shell关闭的影响。

当然了,能启动就能干死他。
先看一下他的进程id

jobs -l

在这里插入图片描述

kill -9 21431

杀死它。
在这里插入图片描述

这里就可以看到我们杀死了这个进程。

。。。。未完待续
我把nohup运行得日志放到scrapyd得目录下面,所以大家在这个下面创个文件就好了,我的叫scrapyd-run.log

touch scrapyd-run.log
nohup scrapyd >./scrapyd-run.log 2>&1 &

你可能感兴趣的:(scrapyd得部署得问题啊!!!!!!!!(全网最全)(linux小白专用))