Systemctl service expirou durante o início

0

Eu criei *.service e coloquei na minha pasta /etc/systemd/system :

[Unit]
Description=WSO2 IoT Message broker

[Service]
Environment="JAVA_HOME=/usr/lib/jvm/java-8-oracle"
Type=forking
ExecStart=/home/ubuntu/wso2iot-3.1.0/bin/broker.sh

[Install]
WantedBy=multi-user.target

Estou tentando executar um dos mudles do WSO2 IoT Server, mas isso não importa.

Quando eu inicio este script bash manualmente, ele carrega por um longo tempo e continua no modo iniciado, porque ele executa algo como o aplicativo do servidor da Web que, em seguida, leva uma porta específica.

Quando eu inicio este serviço assim:

sudo systemctl start myservice.service

Leva muito tempo e depois diz: Start operation timed out. Terminating.

Eu preciso que este serviço seja lançado para sempre até que eu o pare manualmente.

O que eu perdi no meu arquivo de configuração do serviço?

    
por Mr.D 08.09.2017 / 14:46

1 resposta

2

Defina o Type do seu script de serviço para simple ou oneshot . Dependendo do comportamento do script de shell iniciado.

  • se o script de shell executar um loop infinito e não sair, defina Type to simple
  • caso contrário, defina Type para oneshot

Depois de fazer suas alterações, recarregue a configuração com systemctl daemon-reload e inicie seu serviço.

    
por Thomas 08.09.2017 / 15:04