You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TeamCity构建Go代码后,如何让可执行文件持续后台运行?

解决TeamCity构建后Golang可执行文件后台持续运行的问题

直接后台运行进程会被TeamCity的构建清理机制终止,因为构建结束时会回收所有关联的子进程。要让进程脱离TeamCity的进程控制,需要做以下关键操作:

方法一:使用nohup启动进程

修改你的run.sh脚本为:

#!/bin/bash
echo "启动可执行文件..."
nohup ./executable-file > app.log 2>&1 &
echo "进程已启动,PID: $!"
  • nohup会让进程忽略父进程退出时发送的SIGHUP信号,避免被终止
  • > app.log 2>&1将标准输出和错误输出重定向到日志文件,防止进程因等待终端输入而挂起
  • &将进程放到后台运行

方法二:使用setsid创建独立会话

如果nohup不生效,可以尝试用setsid创建新的会话,彻底脱离TeamCity的进程组:

#!/bin/bash
echo "启动可执行文件..."
setsid ./executable-file > app.log 2>&1 &
echo "进程已启动,PID: $!"
  • setsid会为进程创建一个新的会话和进程组,使其成为会话首进程,完全独立于原来的父进程

额外注意事项

  • 确保TeamCity构建代理用户有可执行文件的运行权限,以及日志文件目录的写入权限
  • 如果需要停止进程,可以通过kill命令结合输出的PID来操作,或者后续添加停止脚本

内容的提问来源于stack exchange,提问作者sercan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:20:42