python里使用multiprocessing.Pool创建的子进程放到后台执行后怎样批量结束

近来开发的一个黄页爬虫, 因为要请求多个接口获取数据, 为了提高爬取效率, 所以使用了进程池去请求接口, 用的是multiprocessing.Pool创建进程池的方式.

当我把爬虫放到服务器上运行时, 我使用了

nohup python lei.py & 

disown 

命令让这个进程在后台运行,但发现有个问题:当我想结束它们时,我通过

ps aux|grep lei

找到了很多进程,例如我启动的进程池数量是30时,就会有30个进程id在搜索结果列表中,我执行 kill [父进程id]后, 有些子进程会被杀死, 但经常是杀不干净, 因为这些子进程也是独立于父进程的, 并不是说父进程结束了, 子进程就会跟着被杀死;

查了一番资料后, 发现用如下的方式可行, 很简单, 就两步:

  1. 查找到父进程的id, 命令如下:
ps aux|grep lei.py

结果行里带S1标记的第二列就是父进程id
示例图片如上图中, 278992 即是父进程

  1. 使用命令一起杀死子进程
kill -TERM -<父进程PID>

在这个例子中, 执行的命令是

kill -TERM -278992

然后父进程和子进程都被杀死了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值