使用多处理程序杀死程序

时间:2010-09-10 17:07:19

标签: python

我正在使用多处理模块在我的程序中进行并行处理。当我测试它时,我经常想在发现错误时尽早杀死该程序,因为它需要一段时间才能完成。在我的Linux环境中,我从终端运行我的程序,并使用Ctrl + C来终止它。使用多处理,这会导致所有进程被终止,但是我从来没有得到bash提示符,并且必须关闭终端并打开一个新终端(并导航回我的工作目录),这非常烦人。有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:23)

按Ctrl-Z暂停Python进程,然后执行kill %1以终止它。您也可以按Ctrl- \(反斜杠),但这可能会导致进程留下核心文件。

答案 1 :(得分:2)

但是等等......是不是有办法处理KeyboardException事件来杀死池中的进程?

我试过了:

except KeyboardInterrupt as e: # Ctrl-C
    print("Killing all the children in the pool.")
    pool.close()
    pool.terminate()
    return 1
    # raise e

但它似乎不起作用。

答案 2 :(得分:0)

您可以使用屏幕启动该过程,然后在需要时终止屏幕会话。它不会取出整个bash终端。有关良好的屏幕教程,请参阅:

http://www.kuro5hin.org/story/2004/3/9/16838/14935