Configurando o serviço simples com o systemd

1

Estamos usando o servidor Bamboo para integração contínua com agentes remotos que estão construindo nossos projetos. Esse agente pode ser iniciado com um script de shell simples (que funciona bem). Mas eu pensei que eu iria movê-lo ainda mais e torná-lo systemd unit, o que tornará o agente autoinicializar após o boot e permitirá que as pessoas o iniciem / parem via comandos systemctl . Então, isso que eu tentei

[Unit]
Description=Atlassian Bamboo Agent
After=syslog.target network.target

[Service]
Type=forking
User=shub
Group=shub
ExecStart=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh start
ExecStop=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh stop

[Install]
WantedBy=multi-user.target

Do que eu fiz systemctl daemon-reload . O problema é que o agente não é inicializado após a reinicialização e também está agindo de forma estranha (de uma maneira que o serviço está se reiniciando de tempos em tempos ou não aparece corretamente após systemctl start ). Então, o que estou fazendo errado? Pensei em mudar o Type para o simple , mas quero que o agente seja executado como um serviço de segundo plano (e o próprio script executa o agente em segundo plano após a execução).

    
por Petr Mensik 21.06.2016 / 18:06

1 resposta

0

Você fez várias perguntas. Vou responder a pergunta: "Por que meu serviço systemd personalizado não inicia na inicialização?"

A resposta é porque você não ativou . Quando você executa systemctl enable my-service-name , o bloco [Install] em seu arquivo de unidade é acionado.

Nesse caso, você instruiu o systemd a iniciar o serviço como parte do alcance do multi-user.target .

A execução do comando enable criará um link simbólico em /etc/systemd/system/multi-user.target.wants/ e a presença desse link simbólico é o que realmente instruirá systemd a iniciar o serviço na inicialização.

Sugiro transformar seu comentário de "atuação estranha" em uma pergunta à parte, na qual mais detalhes são fornecidos, talvez com detalhes do periódico sobre o que está acontecendo. (verifique journalctl output).

    
por 24.06.2016 / 17:05