In Python 2.5, how do I kill a subprocess?

前端 未结 4 1075
灰色年华
灰色年华 2020-12-01 04:21

I am using the subprocess package in Python to run a subprocess, which I later need to kill. However, the documentation of the subprocess package states that the terminate()

4条回答
  •  不知归路
    2020-12-01 04:55

    Thats a copy&pase complete solution:

    def terminate_process(pid):
        # all this shit is because we are stuck with Python 2.5 and 
        # we cannot use Popen.terminate()
        if sys.platform == 'win32':
            import ctypes
            PROCESS_TERMINATE = 1
            handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, False, pid)
            ctypes.windll.kernel32.TerminateProcess(handle, -1)
            ctypes.windll.kernel32.CloseHandle(handle)
        else:
            os.kill(pid, signal.SIGKILL)
    

    Accepting bug reports as comments ;)

提交回复
热议问题