用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 02 Python
python应用程序在windows下不出现cmd窗口的办法
May 29 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
如何使用Python的Requests包实现模拟登陆
Apr 27 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
python实现智能语音天气预报
Dec 02 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 Python
python interpolate插值实例
Jul 06 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
Pyhton模块和包相关知识总结
May 12 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 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函数实现数字与文字分页代码
2015/07/28 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
2014/12/10 Javascript
JavaScript 基本概念
2015/01/20 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python使用OpenCV进行标定
2018/05/08 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
Python3远程监控程序的实现方法
2019/07/15 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
Unix控制后台进程都有哪些进程
2016/09/22 面试题
国际贸易专业推荐信
2013/11/15 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
家长会主持词开场白
2014/03/18 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL