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?
Définissez le Type
de votre script de service sur simple
ou oneshot
name__. En fonction du comportement du script Shell démarré.
Type
sur simple
name__Type
à oneshot
name__Après avoir apporté vos modifications, rechargez la configuration avec systemctl daemon-reload
et démarrez votre service.