web-dev-qa-db-fra.com

Service Systemctl expiré au démarrage

J'ai créé *.service et l'ai placé dans mon dossier /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

Je suis sur le point de lancer l'un des mudles de WSO2 IoT Server, mais cela n'a pas d'importance.

Lorsque je lance manuellement ce script bash, il se charge pendant longtemps et reste en mode lancé, car il exécute quelque chose comme une application de serveur Web qui utilise ensuite un port spécifique.

Quand je lance ce service comme ceci:

Sudo systemctl start myservice.service

Cela prend beaucoup de temps et dit ensuite: Start operation timed out. Terminating.

Je dois faire ce service lancé pour toujours jusqu'à ce que je l'arrête manuellement.

Qu'est-ce qui m'a manqué dans mon fichier de configuration de service?

5
Mr.D

Définissez le Typede votre script de service sur simpleou oneshotname__. En fonction du comportement du script Shell démarré.

  • si le script Shell exécute une boucle sans fin et ne se ferme pas, définissez Typesur simplename__
  • sinon définissez Typeà oneshotname__

Après avoir apporté vos modifications, rechargez la configuration avec systemctl daemon-reload et démarrez votre service.

6
Thomas