python结束子进程_如何清除python中的子进程

我们使用python进程来管理长时间运行的python子进程。有时需要终止子进程。kill命令不会完全终止进程,只会使其失效。

运行以下脚本将演示此行为。import subprocess

p = subprocess.Popen(['sleep', '400'], stdout=subprocess.PIPE, shell=False)

或者p = subprocess.Popen('sleep 400', stdout=subprocess.PIPE, shell=True)

将创建子流程。p.terminate()

p.kill()

对过程没有任何影响。由ps aux | grep sleep演示$ ps aux| grep 'sleep'

User 8062 0.0 0.0 7292 764 pts/7 S 14:53 0:00 sleep 400

该进程尚未终止。使用带'kill'和pid参数的subprocess.call()函数将发出kill命令。subprocess.call(['kill', str(p.pid)])

这会扼杀进程,但现在已经失效。$ ps aux | grep 'sleep'

User 8062 0.0 0.0 0 0 pts/7 Z+ 14:51 0:00 [sleep]

如果队列运行的时间足够长,它最终会达到最大进程数,还是最终会收获已失效的进程并恢复正常?

如果答案是前者,那么如何在不杀死父进程的情况下处理python中已失效的进程?

有没有更好的方法来杀死进程?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值