python里使用multiprocessing.Pool创建的子进程放到后台执行后怎样批量结束
2023-12-25 15:37:32
近来开发的一个黄页爬虫, 因为要请求多个接口获取数据, 为了提高爬取效率, 所以使用了进程池去请求接口, 用的是multiprocessing.Pool创建进程池的方式.
当我把爬虫放到服务器上运行时, 我使用了
nohup python lei.py &
和
disown
命令让这个进程在后台运行,但发现有个问题:当我想结束它们时,我通过
ps aux|grep lei
找到了很多进程,例如我启动的进程池数量是30时,就会有30个进程id在搜索结果列表中,我执行 kill [父进程id]后, 有些子进程会被杀死, 但经常是杀不干净, 因为这些子进程也是独立于父进程的, 并不是说父进程结束了, 子进程就会跟着被杀死;
查了一番资料后, 发现用如下的方式可行, 很简单, 就两步:
- 查找到父进程的id, 命令如下:
ps aux|grep lei.py
结果行里带S1标记的第二列就是父进程id
如上图中, 278992 即是父进程
- 使用命令一起杀死子进程
kill -TERM -<父进程PID>
在这个例子中, 执行的命令是
kill -TERM -278992
然后父进程和子进程都被杀死了
文章来源:https://blog.csdn.net/one_and_only4711/article/details/135195354
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!