Teamcity Build Agent é morto pelo systemd ao atualizar

5

Em nosso sistema centos, configuramos um agente teamcity como um serviço systemd. O serviço funciona bem, exceto quando o agente executa uma atualização. Em seguida, ele é morto durante a execução da atualização. Eu acho que isso é devido ao fato de que o systemd observa os processos criados e quando o processo principal existe para permitir que um segundo processo realize um upgrade systemd decide que este é um processo perdido e mata após cerca de um minuto.

Eu acho que essa suposição é validada pelo fato de que, quando eu inicio diretamente o agente teamcity, a atualização funciona sem nenhum problema.

Esta é a configuração do serviço:

[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

Até agora eu tentei mudar o timeout para 900secs e comentei o PIDFile. Nada ajudou.

Existe uma maneira de dizer ao systemd para não matar o processo de atualização dizendo-lhe para não procurar por processos perdidos?

    
por Daniel Schröter 16.01.2015 / 14:20

1 resposta

2

Adicionando

RemainAfterExit=yes

para a estrofe Service parece corrigir isso sem precisar alterar os tempos limite.

Documentado no link

    
por 23.02.2016 / 18:03