用python记录运行pid,并在需要时kill掉它们的实例


Posted in Python onJanuary 16, 2017

我在跑爬虫程序的时候,由于爬虫程序的等待目标服务器返回数据的时间很长,而cpu占用很低,所以经常挂着代理一跑就跑好几百个。但是爬虫程序通常是写了死循环,或直到分配给该进程的任务都跑完才退出的。如果我们想中途结束掉这些任务,是没办法手工一个一个kill掉的。那么该如何结束这些进程呢?

我的方法就是在运行爬虫进程时,记录该进程的Pid,然后在需要手动结束时,再用语句kill掉它们。

for i in {1..100}
do
  nohup python NetEase_comms_proxy.py > hehe.dat 2>&1 & echo $! >> run.pid
  sleep 10
done

上述语句完成了将脚本在后台运行100便,并且将pid append到run.pid文件中。其中nohup 是 no hang up的缩写命令。do…done之间是被循环的语句。

接下来就是kill掉它们的语句了,我用的python

import os

if __name__ == '__main__':
  fin = open('run.pid', 'r')
  pids = []
  for line in fin:
    pids.append(line.strip())
  for pid in pids:
    cmd = 'kill ' + pid
    os.system(cmd)

这样就把记录下来的pid全部kill掉了。

但需要注意的一点时,如果在任务运行期间,有的进程由于完成任务或者出错而退出。其他的程序可能会share这些进程的Pid,这样如果在运行kill脚本的时候,可能附带就把这些进程也给Kill掉了,造成不必要的麻烦。

以上这篇用python记录运行pid,并在需要时kill掉它们的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python二维码生成库qrcode安装和使用示例
Dec 16 Python
Python中的ConfigParser模块使用详解
May 04 Python
python统计文本字符串里单词出现频率的方法
May 26 Python
Python 操作MySQL详解及实例
Apr 30 Python
Python中的浮点数原理与运算分析
Oct 12 Python
pandas数据清洗,排序,索引设置,数据选取方法
May 18 Python
python常用函数与用法示例
Jul 02 Python
python能做什么 python的含义
Oct 12 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 Python
python regex库实例用法总结
Jan 03 Python
python 根据pid杀死相应进程的方法
Jan 16 #Python
总结python实现父类调用两种方法的不同
Jan 15 #Python
利用python程序帮大家清理windows垃圾
Jan 15 #Python
Python科学计算之NumPy入门教程
Jan 15 #Python
Python科学计算之Pandas详解
Jan 15 #Python
使用pyecharts无法import Bar的解决方案
Apr 23 #Python
详解Python3中字符串中的数字提取方法
Jan 14 #Python
You might like
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
Chrome Web App开发小结
2014/09/04 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
php读取csc文件并输出
2015/05/21 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
javascript模块化简单解析
2016/04/07 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
利用JS实现数字增长
2016/07/28 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
python 链接和操作 memcache方法
2017/03/04 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
python交互式图形编程实例(一)
2017/11/17 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
小学数学教学反思范文
2016/02/16 职场文书