用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 相关文章推荐
win7安装python生成随机数代码分享
Dec 27 Python
python写xml文件的操作实例
Oct 05 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
Apr 14 Python
初步剖析C语言编程中的结构体
Jan 16 Python
python模拟登陆,用session维持回话的实例
Dec 27 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
python批量修改ssh密码的实现
Aug 08 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
python3读取autocad图形文件.py实例
Jun 05 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 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,ajax实现分页
2008/03/27 PHP
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
php防止sql注入简单分析
2015/03/18 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
用JAVASCRIPT如何给<textarea></textarea>赋值
2007/04/20 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
python同时遍历两个list用法说明
2020/05/02 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
财务会计人员岗位职责
2013/11/30 职场文书
培训讲师邀请函
2014/01/10 职场文书
家属答谢词
2015/01/05 职场文书
课题研究阶段性总结
2015/08/13 职场文书
初中班主任教育随笔
2015/08/15 职场文书
贷款担保书范本
2015/09/22 职场文书
2016入党心得体会范文
2016/01/06 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
Redis如何一键部署脚本
2021/04/12 Redis