用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 基础学习第二弹 类属性和实例属性
Aug 27 Python
python实现挑选出来100以内的质数
Mar 24 Python
python实现音乐下载的统计
Jun 20 Python
Sanic框架配置操作分析
Jul 17 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
如何用 Python 子进程关闭 Excel 自动化中的弹窗
May 07 Python
python 字典和列表嵌套用法详解
Jun 29 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 Python
对象析构函数__del__在Python中何时使用
Mar 22 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 XPath对XML文件查找及修改实现代码
2011/07/27 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
PHP函数超时处理方法
2016/02/14 PHP
Yii rules常用规则示例
2016/03/15 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
python浪漫表白源码
2019/04/05 Python
python解析yaml文件过程详解
2019/08/30 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
介绍下java.util.Arrays类
2012/10/16 面试题
最新茶叶店创业计划书
2014/01/14 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书