我有一个在Windows 8.1上运行的后台运行的Python 2.7进程。
有没有办法正常结束这个过程,并closures或注销清理?
尝试使用win32api.GenerateConsoleCtrlEvent。
我解决了这个多处理python程序在这里: 优雅地终止子Python进程在Windows上,所以最后子句运行
我使用subprocess.Popen测试了这个解决方案,它也可以。
这是一个代码示例:
import time import win32api import win32con from multiprocessing import Process def foo(): try: while True: print("Child process still working...") time.sleep(1) except KeyboardInterrupt: print "Child process: caught ctrl-c" if __name__ == "__main__": p = Process(target=foo) p.start() time.sleep(2) print "sending ctrl c..." try: win32api.GenerateConsoleCtrlEvent(win32con.CTRL_C_EVENT, 0) while p.is_alive(): print("Child process is still alive.") time.sleep(1) except KeyboardInterrupt: print "Main process: caught ctrl-c"