【问题标题】:Start background process from TeamCity build step从 TeamCity 构建步骤开始后台进程
【发布时间】:2020-01-31 04:42:29
【问题描述】:

当我尝试从 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,b/c 许多后续构建步骤将需要它。然后,我将使用写入文件的 PID 终止端口转发进程。

不幸的是,oc port-forward 在步骤结束后立即终止。有没有办法让它工作?

【问题讨论】:

    标签: teamcity


    【解决方案1】:

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

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

    这可确保端口转发过程在 TeamCity 步骤终止后继续存在,从而使端口转发可用于后续构建步骤。

    【讨论】:

      猜你喜欢
      • 2014-09-13
      • 1970-01-01
      • 2012-12-28
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      相关资源
      最近更新 更多