python怎么终止进程如何使用Python子进程终止进程组

2022-08-13 09:25:47

我试图使用

Python子进程执行以下等效操作:

>cat /var/log/dmesg | festival --tts &

[1] 30875

>kill -9 -30875

请注意,我正在杀死进程组(由负号前面指示进程ID号),以便终止所有子进程Festival启动.

在Python中,我目前有以下代码,其中两个进程是通过管道创建和链接的.

process_cat = subprocess.Popen([

"cat",

"/var/log/dmesg"

], stdout = subprocess.PIPE)

process_Festival = subprocess.Popen([

"festival",

"--tts"

], stdin = process_cat.stdout, stdout = subprocess.PIPE)

我应该如何以与上面显示的Bash方式相同的方式杀死这些进程及其子进程?以下方法是不够的,因为它不会杀死子进程:

os.kill(process_cat.pid, signal.SIGKILL)

os.kill(process_Festival.pid, signal.SIGKILL)

有没有更优雅的方法来做到这一点,也许只使用一个过程?

  • 作者:毒家观察 公众号
  • 原文链接:https://blog.csdn.net/weixin_42172204/article/details/113981733
    更新时间:2022-08-13 09:25:47