我需要在运行应用程序后运行命令,但我不确定这是否可能,因为如果我的应用程序正在运行终端运行应用程序。 (我的 Jenkins 管道需要它)
请问你知道是否可以吗?
答案1
当我们有一个应该作为服务运行的应用程序时,这种问题很常见。不过,这种方法存在一些问题。第一个是,您的应用程序还没有准备好作为服务或守护程序运行。这就是为什么现在大多数人将他们的应用程序打包为 Docker 镜像并如此部署的原因。
Jenkins 按照设计会在每个步骤结束后终止其启动的所有进程。如果您不希望出现这种行为,请尝试设置该JENKINS_NODE_COOKIE
变量并将其设置为“dontKillMe”。像这样的东西:
sh "export JENKINS_NODE_COOKIE=dontKillMe"
sh "myApp &"
根据您的 Jenkins 版本,可能还需要将该BUILD_ID
变量设置为“donKillMe”。
此致。