如何向正在运行的詹金斯作业发送信号

Posted

技术标签:

【中文标题】如何向正在运行的詹金斯作业发送信号【英文标题】:How can I send a signal to a running jenkins job 【发布时间】:2016-03-15 06:28:35 【问题描述】:

我们的集成测试在 jenkins(带有 docker 插件)和 selenium 上运行。当测试失败时,我们希望容器仍在运行,以便我们检查情况。为了防止容器停止,我们有一个脚本在工作结束时运行一个无限循环,当出现问题时。

当测试通过时,循环不会运行,它工作正常。当测试失败时,容器仍在运行,这很好,但作业将永远运行。我们必须中止作业,但测试不会被标记为失败。

所以我想知道是否可以向失败的测试发送信号以打破循环并正常结束测试?抱歉啰嗦了。感谢您阅读我的问题。

【问题讨论】:

【参考方案1】:

您可以使用docker kill 向正在运行的容器发送信号。

# docker kill --help

Usage:  docker kill [OPTIONS] CONTAINER [CONTAINER...]

Kill a running container

  --help=false         Print usage
  -s, --signal=KILL    Signal to send to the container

例如,有一个名为jenkins的正在运行的容器。

命令是docker kill --signal=SIGTERM jenkins

注意:只有容器中pid=1的进程才能接收到这个信号。

【讨论】:

以上是关于如何向正在运行的詹金斯作业发送信号的主要内容,如果未能解决你的问题,请参考以下文章

每个詹金斯奴隶只能运行一个作业吗?

多个工作插件多次运行工作 - 詹金斯

实验七 信号

实验七 信号

实验七 信号

詹金斯:如何测试奴隶