0

大家好。

我使用 Jenkins 作为 CI 服务器,我需要使用 Jmeter 运行一些性能测试。我已经设置了插件并配置了我的工作区,一切正常,但我必须手动执行一些步骤,我想要更多的“自动化”。

目前我在远程服务器中有一些小程序。这些程序进行了一些特定的验证,例如(只是为了解释):验证电子邮件地址、电话号码等。所以,在我在 jenkins 中运行构建之前,我必须手动启动我想要的程序(file.sh) :我必须使用 putty(或任何其他 ssh 客户端)连接到服务器,然后运行,例如,命令

./email_validation.sh

Jmeter 测试以正确的方式运行,当测试完成后,我必须手动“关闭”我启动的程序。但我想要的是尝试在 Jenkins 配置中启动我需要的程序(不是在 Jenkins 之外手动启动,而是在“执行 shell”或“使用 ssh 执行远程 shell”构建步骤中)。

我试图启动它,但它卡住了,因为当 Jenkins build 找到命令时

./email_validation.sh

构建停止,它等待命令完成,然后它将继续其他构建步骤,但显然,我需要在执行测试之前不要完成此步骤。

有没有办法做到这一点?谢谢

4

1 回答 1

4

通过在命令末尾添加 & 符号将命令作为后台进程运行,并使用nohup 命令以防父进程收到挂断信号,例如

nohup /path/to/email_validation.sh &

如果脚本产生任何输出,默认情况下它将转到脚本启动时当前目录中的文件 nohup.out。

您可以通过运行以下命令在构建结束时终止该进程:

pkill email_validation.sh
于 2013-10-17T16:26:26.850 回答