python - 多处理进程 os.system ('kill -9 {0}' .format(pid)) 在 Linux 上失败

标签 python linux process

当我在 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/

相关文章:

c++ - Unix 文件描述符

process - Erlang消息队列困惑

python - 在python中生成二进制数的二维数组

python - 无法在 Windows 7 上的 Enthought Canopy 中可视化 python (vpython)

java - 如何在 Java 应用程序中调用文本 UI(whiptail 或对话框)?

linux - SFTP 因 "Match Group"子句而失败

c - 运行的进程数

c - 使用3个进程的System V信号量进行同步

python - 为什么 Gauss-Jacobi 方法的特定 numpy 实现会显着减少迭代次数?

python - 如何在 cython 中声明 numpy.bool ?