我有一个在新的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中创建一个子进程,然后我可以随时杀死它?