欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python执行时间长被kill_用python记录运行pid,并在需要时kill掉它们的实例

发布时间:2025/3/15 python 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python执行时间长被kill_用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执行时间长被kill_用python记录运行pid,并在需要时kill掉它们的实例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。