在我们的 centos 系统上,我们已将 teamcity 代理配置为 systemd 服务。该服务工作正常,除非代理执行升级。然后它在执行升级时被杀死。我想这是因为 systemd 监视创建的进程,当主进程存在以让第二个进程执行升级时,systemd 认为这是一个丢失的进程并在大约一分钟后将其杀死。
我想这个假设得到了以下事实的验证:当我直接启动 teamcity 代理时,升级工作没有问题。
这是服务的配置:
[Unit]
Description=teamcity agent - local
Requires=network.target
After=network.target
[Service]
Type=forking
PIDFile=/home/teamcityagent/logs/buildAgent.pid
WorkingDirectory=/home/teamcityagent
User=teamcityagent
Group=teamcityagent
ExecStart=/home/teamcityagent/bin/agent.sh start
ExecStop=/home/teamcityagent/bin/agent.sh stop
TimeoutStartSec=900
TimeoutStopSec=60
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已尝试将超时更改为 900 秒并注释掉 PIDFile。没有任何帮助。
有没有办法通过告诉 systemd 不要监视丢失的进程来告诉 systemd 不要终止升级进程?