大家好。
我正在使用Jenkins作为CI服务器,我需要使用Jmeter运行一些性能测试。我已经设置了插件并配置了我的工作区,一切正常,但我必须手动完成一些步骤,我想要更多的“自动化”。
目前我在远程服务器上有一些小程序。这些程序进行了一些特定的验证,例如(只是解释):验证电子邮件地址,电话号码等。 所以,在我在jenkins中运行构建之前,我必须手动启动我想要的程序(file.sh): 我必须使用putty(或任何其他ssh客户端)连接到服务器,然后运行,例如,命令
./email_validation.sh
Jmeter测试以正确的方式运行,当测试完成后,我必须手动“关闭”我开始的程序。但我想要的是尝试在Jenkins配置中启动我需要的程序(不是在Jenkins外部手动,而是在“执行shell”或“使用ssh执行远程shell”构建步骤)。
我试图启动它,但它被卡住了,因为当Jenkins构建找到命令时
./email_validation.sh
构建停止,它等待命令完成,然后它将继续其他构建步骤,但显然,我需要这个步骤才能完成,直到测试执行。
有没有办法实现这个目标?感谢
答案 0 :(得分:4)
通过添加&运行您的命令作为后台进程。命令末尾的符号,并在父进程获取挂断信号的情况下使用nohup command,例如
nohup /path/to/email_validation.sh &
如果脚本产生任何输出,则在启动脚本时,它将默认发送到当前目录中的nohup.out文件。
您可以通过运行以下命令在构建结束时终止进程:
pkill email_validation.sh