gpt4 book ai didi

jenkins - 如何调用shell脚本来启动后端Java进程?

转载 作者:行者123 更新时间:2023-12-02 20:48:53 35 4
gpt4 key购买 nike

完成 Jenkins 任务后,我使用 Jenkins 的后置条件配置部分执行 Linux shell 脚本。

这个 Linux shell 脚本想要在后端启动备用服务,并且不能导致 Jenkins 暂停。

我尝试使用“nohup+&”等,但不起作用。

有什么好的方法吗?

最佳答案

Jenkins 可能正在等待一些管道关闭。您的后台进程继承了一些文件描述符,并在运行期间将它们保持打开状态。

如果幸运的话,唯一的文件描述符是 0、1 和 2(标准的)。您可能需要使用 lsof -p PID 检查后台进程的文件描述符,其中 PID是后台进程的进程id。

您应该确保所有这些文件描述符(输入和输出)都重定向到后台进程,因此以如下方式启动:

nohup daemon </dev/null >/dev/null 2>&1 &

您可以随意将输出定向到 /dev/null 以外的文件,但请确保保持重定向的顺序。顺序很重要。

如果您计划从 Jenkins 作业启动后台进程,请注意 Jenkins 将在构建结束时终止后台进程。请参阅https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller关于如何防止这种情况。

关于jenkins - 如何调用shell脚本来启动后端Java进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28319984/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com