多处理过程操作系统('kill 9{0}.format(pid))在Linux上失败

2024-09-28 20:45:33 发布

您现在位置:Python中文网/ 问答频道 /正文

当我在linux中使用terminate和python时,我找到了关闭进程的方法操作系统('kill-9{0}.format(pid)),但失败了。在

我的代码是运行2进展。什么时候第一个进度完成了,我希望第二个进度也关闭(第二个进度,如果你不关闭它,它会一直自动运行)。在

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))

Tags: 方法代码formattarget进程linuxsysprocess
1条回答
网友
1楼 · 发布于 2024-09-28 20:45:33

确保您运行的是Linux。还要考虑使用os.kill(pid, signal.SIGKILL)。在

不完全是您所要求的,但是考虑切换到psutil以获得跨平台的好处以及方便,例如wait_procs,它将优雅地发送SIGTERM,等待,然后发送SIGKILL。在

signal.SIGKILL应该在Linux上可用(而不是在Windows上)。在

多处理模块recently gaineda kill()方法,在Windows上可追溯到terminate。在

相关问题 更多 >