用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之import机制详解
Jul 03 Python
使用Python的内建模块collections的教程
Apr 28 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
python爬虫框架talonspider简单介绍
Jun 09 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
使用GitHub和Python实现持续部署的方法
May 09 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
如何基于Python批量下载音乐
Nov 11 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
python非标准时间的转换
Jul 25 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 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 FTP类的详解
2013/06/13 PHP
PHP图片加水印实现方法
2016/05/06 PHP
php短信接口代码
2016/05/13 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
flash javascript之间的通讯方法小结
2008/12/20 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Python进程间通信Queue实例解析
2018/01/25 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
用 Python 制作地球仪的方法
2020/04/24 Python
python的help函数如何使用
2020/06/11 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
美国在线工具商店:Acme Tools
2018/06/26 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
投资意向书范本
2014/04/01 职场文书
学前班评语大全
2014/05/04 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
举起手来观后感
2015/06/09 职场文书
法人代表证明书范本
2015/06/18 职场文书