当我在 linux 中使用 python 终止时,我找到了以 os.system('kill -9 {0}'.format(pid)) 的方式关闭进度的方法,但它失败了。
我的代码是运行两个进度。当第一个进度完成时,我希望第二个进度也关闭(如果不关闭第二个进度,它会一直自动运行)。
sys.setrecursionlimit(1000000)
progress1 = Process(target=main)
progress2 = Process(target=run_proxypool)
progress1.daemon = True
progress2.start()
pid = progress2.pid
time.sleep(10)
progress1.start()
progress1.join()
os.system('kill -9 {0}'.format(pid))
最佳答案
确保您在 Linux 上运行。还可以考虑使用 os.kill(pid, signal.SIGKILL)
。
不完全是您的要求,但考虑切换到 psutil为了跨平台的好处以及便利,例如 wait_procs它将优雅地发送 SIGTERM,等待,然后发送 SIGKILL。
signal.SIGKILL
应该在 Linux 上可用(而不是在 Windows 上)。
多处理模块 recently gained一个 kill()
方法,在 Windows 上回退到 terminate
。
关于python - 多处理进程 os.system ('kill -9 {0}' .format(pid)) 在 Linux 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464241/