scrapy在运行爬虫的时候通过curl http://localhost:6800/cancel.json -d project=qctt -d job=a22dde1272ef11eaa2e0784f43945ed3 并不能把及时暂停爬虫。因为需要正在执行的任务停止才能发信号结束进程。
然后依然能看到
方法1:scrapyd上可以查看到pid,可以在服务器上用kill pid杀掉进程,如果kill pid失败,可以用kill -9 pid 杀进程
方法2:在服务器上用ps aux|grep 爬虫名 找到 爬虫对应的pid,然后如上,
用kill pid杀掉进程,如果kill pid失败,可以用kill -9 pid 杀进程
kill 和kill -9的区别:kill -9 不阻塞
kill 发送的信号是SIGTERM,而kill -9 发送的信号是SIGKILL(exit) ,exit信号不阻塞。
SIGTERM 终止进程 软件终止信号
SIGKILL 终止进程 杀死进程
有两个信号可以停止进程:SIGTERM和SIGKILL。 SIGTERM比较友好,进程能捕捉这个信号,根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。在某些情况下,假如进程正在进行作业而且不能中断,那么进程可以忽略这个SIGTERM信号。
对于SIGKILL信号,进程是不能忽略的。这是一个 “我不管您在做什么,立刻停止”的信号。假如您发送SIGKILL信号给进程,Linux就将进程停止在那里。