/etc/systemd/system
Ordner:
[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
Ich möchte einen der Mudles von WSO2 IoT Server ausführen, aber das spielt keine Rolle.
Wenn ich diese bash
starte Skript manuell, es wird lange geladen und bleibt im gestarteten Modus, da es so etwas wie eine Webserveranwendung ausführt, die dann einen bestimmten Port verwendet.
Wenn ich diesen Dienst wie folgt starte:
sudo systemctl start myservice.service
Es dauert sehr lange und sagt dann:Start operation timed out. Terminating.
Ich muss diesen Dienst einfach für immer starten, bis ich ihn manuell stoppe.
Was habe ich in meiner Service-Konfigurationsdatei übersehen?
Akzeptierte Antwort:
Legen Sie den Type
fest Ihres Dienstskripts entweder auf simple
oder oneshot
. Abhängig vom Verhalten des gestarteten Shell-Skripts.
- Wenn das Shell-Skript eine Endlosschleife durchläuft und nicht beendet wird, setzen Sie
Type
zusimple
- ansonsten
Type
setzen zuoneshot
Nachdem Sie Ihre Änderungen vorgenommen haben, laden Sie die Konfiguration mit systemctl daemon-reload
neu und starten Sie Ihren Dienst.