等待后无法杀死子进程

时间:2018-06-04 20:20:18

标签: python python-3.x ubuntu subprocess

我有一个在新的Ubuntu shell中运行的进程,我需要在一段时间后停止它。我的代码如下所示:

process = subprocess.Popen(args=['gnome-terminal', '--command=%s' % cmd])
print(process.pid)
time.sleep(5)
process.kill()

我应该想到,这应该启动进程(在另一个shell中),等待5秒,然后将其杀死。但是,当我运行此代码时,它会等待5秒钟然后什么都不做。请注意,如果我删除time.sleep(5)行,则process.kill()似乎有效,立即终止该进程。

编辑:我想我知道发生了什么。 process.kill()不会杀死新shell,只是在创建子进程后立即调用它会阻止首先打开新shell。

在这种情况下,如何在新的shell中创建一个子进程,然后我可以随时杀死它?

0 个答案:

没有答案