用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通过smpt发送邮件的方法
Apr 30 Python
python用10行代码实现对黄色图片的检测功能
Aug 10 Python
Python简单实现子网掩码转换的方法
Apr 13 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
Random 在 Python 中的使用方法
Aug 09 Python
opencv之为图像添加边界的方法示例
Dec 26 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 Python
Python使用华为API为图像设置多个锚点标签
Apr 12 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 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
2006/10/09 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
JS字典Dictionary类定义与用法示例
2019/02/01 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
Python正规则表达式学习指南
2016/08/02 Python
深入理解python中的select模块
2017/04/23 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
详解Python字典的操作
2019/03/04 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Python实现图片识别加翻译功能
2019/12/26 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
进修护士自我鉴定
2013/10/14 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
会议通知范文
2015/04/15 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python