gpt4 book ai didi

python - 终止使用子进程打开的 gnome 终端

转载 作者:行者123 更新时间:2023-12-01 19:29:29 25 4
gpt4 key购买 nike

使用子进程和命令'gnome-terminal -e bash ' 我可以根据需要打开一个 gnome 终端(并让它保留在周围)。这是通过以下任一方式完成的

p=subprocess.Popen(['gnome-terminal', '-e', 'bash'])

p=subprocess.Popen(['gnome-terminal -e bash'], shell=True)

但我无法使用 p.terminate() 关闭终端或p.kill() 。据我了解,使用 shell=True 时有点棘手但我没想到会遇到问题。

最佳答案

终止终端及其子进程(在同一进程组中):

#!/usr/bin/env python
import os
import signal
import subprocess

p = subprocess.Popen(['gnome-terminal', '--disable-factory', '-e', 'bash'],
preexec_fn=os.setpgrp)
# do something here...
os.killpg(p.pid, signal.SIGINT)
  • --disable-factory 用于避免重复使用事件终端,以便我们可以通过 subprocess 句柄杀死新创建的终端
  • os.setpgrpgnome-terminal 放入其自己的进程组中,以便可以使用 os.killpg() 向这个群组

关于python - 终止使用子进程打开的 gnome 终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34659433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com