在Jenkins中通过ssh启动程序,并在Jenkins构建中使用它

在Jenkins中通过ssh启动程序,并在Jenkins构建中使用它,ssh,jenkins,jmeter,Ssh,Jenkins,Jmeter,大家好 我使用Jenkins作为CI服务器,需要使用Jmeter运行一些性能测试。我已经设置了插件,配置了我的工作区,一切都正常,但我必须手动完成一些步骤,我想要更多的“自动化” 目前我在远程服务器上有一些小程序。这些程序进行一些特定的验证,例如(只是为了解释):验证电子邮件地址、电话号码等。 因此,在运行jenkins中的构建之前,我必须手动启动我想要的程序(file.sh): 我必须使用putty(或任何其他ssh客户端)连接到服务器,然后运行命令 ./email_validation.sh

大家好

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

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

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

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

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


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

将命令作为后台进程运行,方法是在命令末尾添加&符号,并在父进程收到挂断信号时使用,例如

nohup /path/to/email_validation.sh &
如果脚本生成任何输出,则在启动脚本时,默认情况下将转到当前目录中的文件nohup.out

您可以在生成结束时通过运行以下命令终止进程:

pkill email_validation.sh

将命令作为后台进程运行,方法是在命令末尾添加&符号,并在父进程收到挂起信号时使用,例如

nohup /path/to/email_validation.sh &
如果脚本生成任何输出,则在启动脚本时,默认情况下将转到当前目录中的文件nohup.out

您可以在生成结束时通过运行以下命令终止进程:

pkill email_validation.sh

谢谢你的帮助,但是当我执行“pkill”命令时,进程并没有停止。我不得不手动杀死它,搜索并使用PIDOk,我找到了解决方法。我不得不使用“pkill-f”和“file.sh”中的进程名称(file.sh是一种快捷方式,在这个文件中是一个大的命令行。因此,不是每次都执行这个大命令,我们只是运行file.sh)谢谢您的帮助,但当我执行“pkill”命令时,进程并没有停止。我不得不手动杀死它,搜索并使用PIDOk,我找到了解决方法。我必须使用“pkill-f”和“file.sh”中的进程名(file.sh是一种快捷方式,在这个文件中有一个大的命令行。因此,不是每次都执行这个大命令,而是运行file.sh)