从TeamCity构建步骤开始后台处理

问题描述 投票:0回答:1

[当我尝试从TeamCity的Custom Script Step Runner启动后台进程时,我看到它会在步骤完成后立即终止后台进程。有没有办法让后台进程继续运行?

这是我正在尝试的步骤:

ORACLE_POD_NAME=`...complex logic here...`

oc port-forward $ORACLE_POD_NAME 15210:1521 &
PORT_FORWARD_PID=$!

echo $PORT_FORWARD_PID > port_forward.pid

想法是在构建期间创建一个指向我的OpenShift pod的持久端口,很多后续的构建步骤都需要它。然后,我将使用写入文件的PID终止端口转发过程。

很遗憾,oc port-forward在步骤结束后立即终止。有没有办法使它工作?

teamcity
1个回答
0
投票

解决方案是从父进程中断开我正在启动的后台子进程的输入和输出,并告诉子进程不要响应HUP (hangup)信号。

nohup oc port-forward $ORACLE_POD_NAME 15210:1521 > /dev/null 2>&1 </dev/null &
PORT_FORWARD_PID=$!

这可确保端口转发过程在TeamCity步骤终止后仍然有效,从而使端口转发可用于后续的构建步骤。

© www.soinside.com 2019 - 2024. All rights reserved.