用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 中的列表解析和生成表达式
Mar 10 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
TensorFlow实现卷积神经网络CNN
Mar 09 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
详解Python如何生成词云的方法
Jun 01 Python
Python 变量类型详解
Oct 10 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
Python 控制终端输出文字的实例
Jul 12 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
python实现按首字母分类查找功能
Oct 31 Python
python 爬取马蜂窝景点翻页文字评论的实现
Jan 20 Python
你需要学会的8个Python列表技巧
Jun 24 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设计模式 Composite (组合模式)
2011/06/26 PHP
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
PHP创建XML接口示例
2019/07/04 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
javascript工具库代码
2012/03/29 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
node.js中的console用法总结
2014/12/15 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
python实现猜单词小游戏
2020/05/22 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
任命书怎么写
2014/06/04 职场文书
学校安全防火方案
2014/06/07 职场文书
股东授权委托书范本
2014/09/13 职场文书
教师个人发展总结
2015/02/11 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
MySQL 开窗函数
2022/02/15 MySQL
python pygame 开发五子棋双人对弈
2022/05/02 Python