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