import platform import ctypes import os import signal def kill_windows_process(pid): PROCESS_TERMINATE = 1 SYNCHRONIZE=1048576 handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE | SYNCHRONIZE, False, pid) ctypes.windll.kernel32.TerminateProcess(handle, -1) ctypes.windll.kernel32.WaitForSingleObject(handle, 1000) ctypes.windll.kernel32.CloseHandle(handle) def kill_unix_process(pid): try: os.kill(pid, signal.SIGKILL) except OSError: pass def kill_process(pid): if pid < 0: return if platform.system() == 'Windows': kill_windows_process(pid) else: kill_unix_process(pid)