用scrapy做爬虫的时候需要开多个爬虫子进程,为了定时开启和关闭爬虫子进程,需要对子进程做控制,而关闭进程有两种方法
-----要简单高效,直接看方法2吧-----
方法1:通过获取全部windows进程,获取增量进程方式
该方法是通过获取所有windows进程,将所有进程名为“python.exe”的获取,最后在杀的时候,除了主进程外,全部杀掉
该方法存在的问题在于,如果杀进程的时候刚好有其他人的python在运行,就把其他的也杀了
主要方法:os.kill(pid,signal.SIGTERM)
不是,不是,不是:os.kill(pid, signal.SIGKILL),这个报错
from multiprocessing import Process
import psutil
import signal
import time
main_proce_id = os.getpid()
def get_process_info():
python_pids = []
pids = psutil.pids()
for pid in pids:
p = psutil.Process(pid)
pid_name = p.name()
if pid_name == 'python.exe':
python_pids.append(pid)
return python_pids
def byProcess():