Python 如何处理Jenkin';s";“中止构建”;优雅?

Python 如何处理Jenkin';s";“中止构建”;优雅?,python,jenkins,Python,Jenkins,我正试图从中止的Jenkins构建中恢复测试数据。文档()似乎抛出了一个中断,因此我尝试使用自定义处理程序捕获它: signal.signal(signal.SIGINT,信号处理器) 通过CMD运行我的程序并发送crtl-c会刺激信号处理器功能。但是,当通过Jenkins运行此命令时,不会捕获中断信号。有没有任何插件可以改变Jenkins中止信号,或者有没有一种方法可以优雅地处理它?好吧,我知道这有点晚了,但是Jenkins在中止时会发送一个术语信号。基本上你只需要注册那个信号 signal.

我正试图从中止的Jenkins构建中恢复测试数据。文档()似乎抛出了一个中断,因此我尝试使用自定义处理程序捕获它:

signal.signal(signal.SIGINT,信号处理器)


通过CMD运行我的程序并发送crtl-c会刺激信号处理器功能。但是,当通过Jenkins运行此命令时,不会捕获中断信号。有没有任何插件可以改变Jenkins中止信号,或者有没有一种方法可以优雅地处理它?

好吧,我知道这有点晚了,但是Jenkins在中止时会发送一个
术语
信号。基本上你只需要注册那个信号

signal.signal(signal.SIGTERM, signal_handler)
资料来源:

上面写着:

詹金斯 当Jenkins作业被取消时,它会将
TERM
发送到 它生成并立即断开连接的进程报告“已完成: 中止,“无论作业的状态如何

这将导致生成的进程及其所有子进程(除非 在新的进程组中生成)以接收
术语

这与在终端中运行作业并按相同效果 CTRL+C,除了后一种情况,发送的是
INT
,而不是
TERM

因为Jenkins会立即断开与子进程的连接并报告 无进一步输出:

  • 信号处理程序可能会错误地显示为不可用 调用。(去哪 认为詹金斯已经
    KILL
    ed了这个过程。)

  • 它可能误导性地显示生成的进程已经完成或正在运行 退出,而它们继续运行