在新shell中创建一个可以在任何时候被杀死的子进程

时间:2018-06-04 20:28:07

标签: python python-3.x ubuntu unix subprocess

我想在单独的shell中运行终端命令,但我也希望能够随时终止/终止它。我在这里读了一些答案,他们说要做process = subprocess.Popen(args=['gnome-terminal', '--command=%s' % cmd])之类的事情。这个问题是,在打开新shell之后调用process.kill()process.terminate()什么都不做。我希望能够调用一个函数并终止或终止新的shell进程。

1 个答案:

答案 0 :(得分:-1)

gnome-terminal命令实际上不是终端程序;它是一个与工厂对话并要求它重复使用现有终端程序来打开新窗口或标签,或者在必要时创建新终端程序的启动器。

所以,杀死这个发射器没有任何意义。并且,即使它会告诉你实际终端进程的PID,你也不想杀死它,因为它可能会杀死一堆其他终端会话。

您可以使用--disable-factory标志来避免此行为:

  

请勿向激活名称服务器注册,请勿重新使用活动终端。

有关gnome-terminal详细信息的详细信息,您可能希望搜索或询问其他地方(可能是Super UserUnix & LinuxAsk Ubuntu),但这应该是是您解决问题所需的一切。