您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

WindowsError:[错误5]尝试杀死子进程(python)时,访问被拒绝

WindowsError:[错误5]尝试杀死子进程(python)时,访问被拒绝

您将p.poll()和p.kill()分开了20秒。到那时,该过程可能已经完成。我建议移动time.sleep(20)调用,以便您轮询并杀死同一时间范围内发生的事件,以避免杀死死进程。以下是在iPython中运行的示例,该示例在杀死已完成的进程时显示类似的错误

In [2]: import subprocess

In [3]: p = subprocess.Popen("dir")

In [4]: p.poll()
Out[4]: 0

In [5]: p.kill()
---------------------------------------------------------------------------
WindowsError                              Traceback (most recent call last)

C:\Users\---\<ipython console> in <module>()

C:\Python26\lib\subprocess.pyc in terminate(self)
    947             """Terminates the process
    948             """
--> 949             _subprocess.TerminateProcess(self._handle, 1)
    950
    951         kill = terminate

WindowsError: [Error 5] Access is denied

即使您在显示进程正在运行的轮询之后直接杀死,它也可以在执行下一行之前完成。我还建议为此异常添加一个try- catch块,如果再次发生,则再次轮询以查看该过程是否真正完成。

python 2022/1/1 18:36:01 有227人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶