我正在尝试使用 pythonpsutil
库来创建和终止进程。我的脚本启动了一个进程,然后尝试终止已启动的子进程。我在 Windows 和 Linux 下运行相同的代码。在 Windows 下一切正常。在 Linux 下psutils
正确启动子进程(所以启动的应用程序是脚本的子进程,它以与脚本相同的权限执行,但是当我尝试终止进程时,它psutil
会从进程中分离但不会终止。这是启动应用程序代码:
self.__proc = psutil.Popen(cmd, cwd=working_directory, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
在此之后,我尝试杀死启动的子进程:
self.__proc.kill()
self.__proc = None
我用这个得到了同样的行为:
while psutil.pid_exists(pid):
p = psutil.Process(pid)
if p is not None:
p.kill()
谁能解释为什么我不能杀死我启动的进程?我做错了什么?
我正在使用Python 2.7。