Eigentlich wäre es besser, das apt Paket zu nutzen. Mit debian als Unterbau sollte es da auch keine Probleme geben (vor allem bringt das Paket schon eine fertige service-Datei mit).
Gut, mutmaßlich sollte es reichen, die start.sh auszuführen. Du brauchst also eigentlich nur eine rudimentäre service-Datei.
Code: Alles auswählen
[Unit]
Description=openHAB - empowering the smart home
Documentation=https://www.openhab.org/docs/
Documentation=https://community.openhab.org
Wants=network-online.target
After=network-online.target
[Service]
Environment=OPENHAB_HOME=/usr/share/openhab
Environment=OPENHAB_CONF=/etc/openhab
Environment=OPENHAB_RUNTIME=/usr/share/openhab/runtime
Environment=OPENHAB_USERDATA=/var/lib/openhab
Environment=OPENHAB_LOGDIR=/var/log/openhab
Environment=OPENHAB_STARTMODE=daemon
EnvironmentFile=-/etc/default/openhab
User=openhab
Group=openhab
WorkingDirectory=/usr/share/openhab
ExecStart=/usr/share/openhab/runtime/bin/karaf ${OPENHAB_STARTMODE}
ExecStop=/usr/share/openhab/runtime/bin/karaf stop
SuccessExitStatus=0 143
RestartSec=5
Restart=on-failure
TimeoutStopSec=120
LimitNOFILE=102642
[Install]
WantedBy=multi-user.target
Dies hier ist die service-Datei, die von apt eingerichtet wird. Naturgemäß sind die Verzeichnisse an anderer Stelle, das heißt, da müsstest Du ein wenig nacharbeiten.
Die ganzen envronment Variablen sind nicht essentiell, aber es ist nett, wenn man sich darüber keine Gedanken machen muss. Ich hab aber keine Ahnung, welche Verzeichnisse sich wo (unterhalb
/opt/openhab/) befinden, da musst Du selbst suchen.
ExecStart und
ExecStop sollte openHAB an der
start.sh vorbei als Dienst starten. Sollte das nicht funktionieren (der Pfad muss natürlich auch in die Innereien unterhalb
/opt/openhab/ verweisen), kannst Du alternativ für ExecStart auch den Pfad zur
start.sh angeben, nur herunterfahren kannst Du den Dienst dann nicht, da müsstest Du dann mit killall openhab arbeiten (oder so ähnlich... keine Ahnung...)
Der Inhalt von
/etc/default/openhab ist natürlich auch wichtig:
Code: Alles auswählen
# openHAB service options
#########################
## PORTS
## The ports openHAB will bind its HTTP/HTTPS web server to.
#OPENHAB_HTTP_PORT=8080
#OPENHAB_HTTPS_PORT=8443
#########################
## HTTP(S) LISTEN ADDRESS
## The listen address used by the HTTP(S) server.
## 0.0.0.0 (default) allows a connection from any location
## 127.0.0.1 only allows the local machine to connect
#OPENHAB_HTTP_ADDRESS=0.0.0.0
#########################
## BACKUP DIRECTORY
## Set the following variable to specify the backup location.
## runtime/bin/backup and runtime/bin/restore will use this path for the zip files.
#OPENHAB_BACKUPS=/var/lib/openhab/backups
#########################
## JAVA OPTIONS
## Additional options for the JAVA_OPTS environment variable.
## These will be appended to the execution of the openHAB Java runtime in front of all other options.
##
## A couple of independent examples:
## EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyZWAVE:/dev/ttyUSB0:/dev/ttyS0:/dev/ttyS2:/dev/ttyACM0:/dev/ttyAMA0"
## EXTRA_JAVA_OPTS="-Djna.library.path=/lib/arm-linux-gnueabihf/ -Duser.timezone=Europe/Berlin -Dgnu.io.rxtx.SerialPorts=/dev/ttyZWave"
EXTRA_JAVA_OPTS=""
#########################
## OPENHAB DEFAULTS PATHS
## The following settings override the default apt/rpm locations and should be used with caution.
## openHAB will fail to update itself if you're using different paths.
## Only set these if you are testing and are confident in debugging.
#OPENHAB_HOME=/usr/share/openhab
#OPENHAB_CONF=/etc/openhab
#OPENHAB_RUNTIME=/usr/share/openhab/runtime
#OPENHAB_USERDATA=/var/lib/openhab
#OPENHAB_LOGDIR=/var/log/openhab
#########################
## OPENHAB USER AND GROUP
## The user and group that takes ownership of openHAB. Only available for init.d systems.
## To edit user and group for systemd, see the service file at /usr/lib/systemd/system/openhab.service.
#OPENHAB_USER=openhab
#OPENHAB_GROUP=openhab
#########################
## SYSTEMD START MODE
## The Karaf startmode for the openHAB runtime. Only available for systemctl/systemd systems.
## Defaults to daemon when unset here. Multiple options can be used without quotes.
## debug increases log output. daemon launches the Karaf/openHAB processes.
#OPENHAB_STARTMODE=debug
Wie Du sehen kannst ist ohnehin alles auskommentiert.
Aber Du könntest damit auch die meisten der Exports über eine "offizielle" Konfigurationsdatei setzen, allerdings nicht die Pfade zu den Binaries, die zum Starten aufgerufen werden müssen. Du kommst also um das Editieren der service-Datei nicht herum.
Speichere die service-Datei im Verzeichnis /etc/systemd/system/ unter dem Namen openhab.service.
Anschließend führst Du den Befehl
sudo systemctl daemon-reload aus. Danach solltest Du in der Lage sein (korrekt gesetzte Pfade vorausgesetzt) openHAB mit dem Befehl
zu starten. Gibt es keine Fehlermeldung, so prüfst Du mit
ob der Dienst läuft. Ist das der Fall, kannst Du mit
den Autostart aktivieren.