我有一个 .sh 文件,它使用 python3 生成一个简单的 http 服务器。我需要使用 Jenkins 成功运行此文件。作业“绿色”了,但我尝试使用 python http 服务器提供的目录不可用,浏览器显示“请求失败”。ps -a
也没有显示任何 python 进程。
当我直接在控制台上运行 python 命令时,服务器启动并ps -a
显示 python 进程的 pid。我遗漏了什么?
答案1
听起来你遇到了 Jenkins 进程树杀手。基本上,当构建完成时,Jenkins 会终止由该构建启动的所有进程,即使这些进程已移至后台。
要阻止进程被终止,请将环境变量设置BUILD_ID
为不包含字符串的任何内容JENKINS
,例如:
BUILD_ID=dontKillMe
如果您使用 Pipelines 而不是 Freestyle 作业,官方文档会说更改的值JENKINS_NODE_COOKIE
,但我使用 Pipelines,仅通过更改并没有遇到任何问题BUILD_ID
。
更多信息官方文档以及StackOverflow 上的相同问题。