用python记录运行pid,并在需要时kill掉它们的实例
我在跑爬虫程序的时候,由于爬虫程序的等待目标服务器返回数据的时间很长,而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 根据pid杀死相应进程的方法
用python语言实现根据pid杀死相应进程 kill_process.py代码如下 #! /usr/bin/python # -*- coding: utf-8 -*- import os import sys import signal def kill(pid): try: a = os.kill(pid, signal.SIGKILL) # a = os.kill(pid, signal.9) # 与上等效 print '已杀死pid为%s的进程, 返回值是:%s' % (pid, a)
-
使用python 获取进程pid号的方法
保存为.py文件后 运行脚本在后面添加进程名称即可 比如:python proinfo.py qq 即可获取QQ的进程信息,注意不区分大小写 复制代码 代码如下: #-*- encoding:UTF-8 -*-import osimport sysimport string import psutilimport re def get_pid(name): process_list = psutil.get_process_list() regex = "pid=(\d+),\sname=\'&
-
用python记录运行pid,并在需要时kill掉它们的实例
我在跑爬虫程序的时候,由于爬虫程序的等待目标服务器返回数据的时间很长,而cpu占用很低,所以经常挂着代理一跑就跑好几百个.但是爬虫程序通常是写了死循环,或直到分配给该进程的任务都跑完才退出的.如果我们想中途结束掉这些任务,是没办法手工一个一个kill掉的.那么该如何结束这些进程呢? 我的方法就是在运行爬虫进程时,记录该进程的Pid,然后在需要手动结束时,再用语句kill掉它们. for i in {1..100} do nohup python NetEase_comms_proxy.py >
-
python记录程序运行时间的三种方法
python记录程序运行时间的三种方法 这里提供了python记录程序运行时间的三种方法,并附有实现代码,最后进行比较,大家参考下: 方法1 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.now() print (endtime - starttime).seconds 方法 2 start = time.time() run_f
-
使用memory_profiler监测python代码运行时内存消耗方法
前几天一直在寻找能够输出python函数运行时最大内存消耗的方式,看了一堆的博客和知乎,也尝试了很多方法,最后选择使用memory_profiler中的mprof功能来进行测量的,它的原理是在代码运行过程中每0.1S统计一次内存,并生成统计图. 具体的使用方式如下: 首先安装memory_profiler和psutil(psutil主要用于提高memory_profile的性能,建议安装)(可使用pip直接安装) pip install memory_profiler pip install p
-
Python记录详细调用堆栈日志的方法
本文实例讲述了Python记录详细调用堆栈日志的方法.分享给大家供大家参考.具体实现方法如下: import sys import os def detailtrace(info): retStr = "" curindex=0 f = sys._getframe() f = f.f_back # first frame is detailtrace, ignore it while hasattr(f, "f_code"): co = f.f_code retSt
-
Python在线运行代码助手
Python代码运行助手可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码.原理如下: 在网页输入代码: 点击Run按钮,代码被发送到本机正在运行的Python代码运行助手: Python代码运行助手将代码保存为临时文件,然后调用Python解释器执行代码: 网页显示代码执行结果: 下载 点击右键,目标另存为:learning.py 备用下载地址:learning.py 完整代码: #!/usr/bin/env python3 # -*- coding: utf-
-
Python实现运行其他程序的四种方式实例分析
本文实例讲述了Python实现运行其他程序的四种方式.分享给大家供大家参考,具体如下: 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32process模块中的函数,如果想进一步控制进程,则可以使用ctype模块,直接调用kernel32.dll中的函数. [方式一]使用os.system()函数运行其他程序 os模块中的system()函数可以方便地运行
-
Python程序运行原理图文解析
本文研究的主要是Python程序运行原理,具体介绍如下. 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py def add(a, b): return a + b #mainrun.py import othermodule a = ['xiaoke', 1, 'python'] a = 'xiaoke string' def func(): a = -5 b = 257 print(a + b) print(a) if __name
-
python 同时运行多个程序的实例
start many programs execfile('C:/Dokumente und Einstellungen/schnei17/Desktop/python/zeit/1.py') print 1 execfile('C:/Dokumente und Einstellungen/schnei17/Desktop/python/zeit/2.py') print 2 以上这篇python 同时运行多个程序的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们
-
python程序运行进程、使用时间、剩余时间显示功能的实现代码
有很多程序运行时间比较长,如果不将运行过程输出将很难判断程序运行的时间.下边这段程序将按照上图所示的格式输出程序运行进程.已用时间.剩余时间. def time_change(time_init): #定义将秒转换为时分秒格式的函数 time_list = [] if time_init/3600 > 1: time_h = int(time_init/3600) time_m = int((time_init-time_h*3600) / 60) time_s = int(time_init
-
Python PyQt5运行程序把输出信息展示到GUI图形界面上
概述:最近在赶毕业设计,遇到一个问题,爬虫模块我用PyQt5写了图形界面,为了将所有的输出信息都显示到图形界面上遇到了问题. 先演示一下效果最终效果吧,下面两张图用来镇楼.可以看到我们图形界面和程序运行的返回的信息是一样的,并且成功把数据展示到图形界面. 1.怎么获取输出信息.eg:我们平时用编译器,例如pycharm,运行的时候,会有很多信息,或者直接在cmd窗口输入命令的时候,也有同样信息.例如我启动数据库. cmd窗口下执行命令返回的信息 Pycharm运行的效果 我就想把这种类似输出
随机推荐
- mysql中Load Data记录换行问题的解决方法
- 批处理维护工具菜单实现
- PHP date()函数警告: It is not safe to rely on the system解决方法
- python读取word文档的方法
- MySql的存储过程学习小结 附pdf文档下载
- XML轻松学习手册(六):XML相关资源
- SQL查询中需要使用别名问题
- SQL Server简单实现数据的日报和月报功能
- javascript基础练习之翻转字符串与回文
- JavaScript基础语法、dom操作树及document对象
- Vue2.0 vue-source jsonp 跨域请求
- java内存溢出示例(堆溢出、栈溢出)
- Nginx服务器的SSL证书配置以及对SSL的反向代理配置
- 解析C#多线程编程中异步多线程的实现及线程池的使用
- java 对ArrayList进行分页实例代码
- python下如何让web元素的生成更简单的分析
- NopCommerce架构分析之(四)基于路由实现灵活的插件机制
- JS获取数组中出现次数最多及第二多元素的方法
- C#中的位操作小结
- 带密匙的php加密解密示例分享