用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使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
小小聊天室Python代码实现
Aug 17 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
Python中pandas模块DataFrame创建方法示例
Jun 20 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
Python pip install之SSL异常处理操作
Sep 03 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 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
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
python实现的防DDoS脚本
2011/02/08 Python
Python发送email的3种方法
2015/04/28 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python中scikit-learn机器代码实例
2018/08/05 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
Linux上比较文件的命令都有哪些
2013/09/28 面试题
招商专员岗位职责
2014/02/08 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
新年寄语2016
2015/08/17 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL