On our centos system we have configured a teamcity agent as a systemd service. The service works fine except when the agent performs an upgrade. Then it gets killed while performing the upgrade. I guess this is due to the fact, that systemd watches the created processes and when the main process exists to let a second process perform an upgrade systemd decides this is a lost process and kills it after about a minute.
I guess this assumption gets validated by the fact that when i directly start the teamcity agent the upgrade works without a problem.
This is the configuration of the service:
[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
So far I have tried to change the timeout to 900secs and commented out the PIDFile. Nothing helped.
Is there a way to tell systemd to not kill the upgrade process by telling it not to watch for lost processes?