父母去世时如何杀死用subprocess.check_output()创建的python子进程?

克拉拉

我在Linux机器上运行python脚本,该脚本使用subprocess.check_output()创建一个子进程,如下所示:

subprocess.check_output(["ls", "-l"], stderr=subprocess.STDOUT)

问题是,即使父进程死亡,子进程仍在运行。父母去世后,我还有什么办法可以杀死子进程?

克达克

您的问题是使用subprocess.check_output-是正确的,您无法使用该接口获取子PID。改用Popen:

proc = subprocess.Popen(["ls", "-l"], stdout=PIPE, stderr=PIPE)

# Here you can get the PID
global child_pid
child_pid = proc.pid

# Now we can wait for the child to complete
(output, error) = proc.communicate()

if error:
    print "error:", error

print "output:", output

为了确保您在出口处杀死孩子:

import os
import signal
def kill_child():
    if child_pid is None:
        pass
    else:
        os.kill(child_pid, signal.SIGTERM)

import atexit
atexit.register(kill_child)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

父母去世时如何处理僵尸进程?

来自分类Dev

如何让子进程 check_output 使用 sys.argv 调用脚本?

来自分类Dev

用PHP杀死进程父母

来自分类Dev

从批处理文件和任务计划程序运行脚本时,子进程运行,check_output,Popen返回空字符串

来自分类Dev

如果父母去世,子进程继续运行

来自分类Dev

python - 尝试从 check_output 接收输出时出错

来自分类Dev

当其父母在GHC Haskell中去世时,子线程会怎样?

来自分类Dev

Python3子进程check_output对于某些命令返回空

来自分类Dev

Python 子进程 check_output FileNotFoundError: [Errno 2] 没有那个文件或目录

来自分类Dev

父母去世后,僵尸进程会去哪里?

来自分类Dev

杀死用fork创建的子进程

来自分类Dev

当父级在python中退出时,如何杀死子进程?

来自分类Dev

Python子流程.check_call与.check_output

来自分类Dev

杀死在Python的__init__类中创建的子进程

来自分类Dev

杀死在Python的__init__类中创建的子进程

来自分类Dev

python:subprocess.check_output如何创建它的调用?

来自分类Dev

python:subprocess.check_output如何创建它的调用?

来自分类Dev

subprocess.check_output()模块对象具有out属性'check_output'

来自分类Dev

子进程check_output(['dir'])支持Linux二进制文件

来自分类Dev

当父进程等待子进程终止时,子进程如何杀死父进程?

来自分类Dev

Python子进程.Popen用信号杀死后返回代码

来自分类Dev

当在OS X上杀死Python进程时,为什么不杀死子进程呢?

来自分类Dev

创建子进程并在调用该进程后将其杀死

来自分类Dev

python中的check_output错误

来自分类Dev

python中的check_output错误

来自分类Dev

如何同时杀死进程和子进程?

来自分类Dev

杀死进程时如何执行logout()?

来自分类Dev

在Python 2.5中使用subprocess.Popen访问子进程创建的文件描述符

来自分类Dev

如何杀死所有子进程而不杀死父进程

Related 相关文章

  1. 1

    父母去世时如何处理僵尸进程?

  2. 2

    如何让子进程 check_output 使用 sys.argv 调用脚本?

  3. 3

    用PHP杀死进程父母

  4. 4

    从批处理文件和任务计划程序运行脚本时,子进程运行,check_output,Popen返回空字符串

  5. 5

    如果父母去世,子进程继续运行

  6. 6

    python - 尝试从 check_output 接收输出时出错

  7. 7

    当其父母在GHC Haskell中去世时,子线程会怎样?

  8. 8

    Python3子进程check_output对于某些命令返回空

  9. 9

    Python 子进程 check_output FileNotFoundError: [Errno 2] 没有那个文件或目录

  10. 10

    父母去世后,僵尸进程会去哪里?

  11. 11

    杀死用fork创建的子进程

  12. 12

    当父级在python中退出时,如何杀死子进程?

  13. 13

    Python子流程.check_call与.check_output

  14. 14

    杀死在Python的__init__类中创建的子进程

  15. 15

    杀死在Python的__init__类中创建的子进程

  16. 16

    python:subprocess.check_output如何创建它的调用?

  17. 17

    python:subprocess.check_output如何创建它的调用?

  18. 18

    subprocess.check_output()模块对象具有out属性'check_output'

  19. 19

    子进程check_output(['dir'])支持Linux二进制文件

  20. 20

    当父进程等待子进程终止时,子进程如何杀死父进程?

  21. 21

    Python子进程.Popen用信号杀死后返回代码

  22. 22

    当在OS X上杀死Python进程时,为什么不杀死子进程呢?

  23. 23

    创建子进程并在调用该进程后将其杀死

  24. 24

    python中的check_output错误

  25. 25

    python中的check_output错误

  26. 26

    如何同时杀死进程和子进程?

  27. 27

    杀死进程时如何执行logout()?

  28. 28

    在Python 2.5中使用subprocess.Popen访问子进程创建的文件描述符

  29. 29

    如何杀死所有子进程而不杀死父进程

热门标签

归档