用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操作列表的常用方法分享
Feb 13 Python
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 Python
python操作字典类型的常用方法(推荐)
May 16 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
简单了解python 邮件模块的使用方法
Jul 24 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
Python基于QQ邮箱实现SSL发送
Apr 26 Python
Python读取yaml文件的详细教程
Jul 21 Python
详解Python中第三方库Faker
Sep 25 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 Python
python获取对象信息的实例详解
Jul 07 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
Admin generator, filters and I18n
2011/10/06 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
vue中监听返回键问题
2019/08/28 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
Python中的面向对象编程详解(下)
2015/04/13 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
餐饮总经理岗位职责
2014/03/07 职场文书
领导干部对照检查材料
2014/08/24 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
教师调动申请报告
2015/05/18 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python