Die QuickHMI Runtime läuft unter Linux als Systemdienst und startet mit dem Betriebssystem. Wie der Dienst gesteuert wird, hängt von der Version ab.
Bis Version 14 wird der Dienst über qhmiRM gesteuert:
| Befehl | Wirkung |
sudo qhmiRM -rd | Startet den QuickHMI Server. |
sudo qhmiRM -sd | Stoppt den QuickHMI Server. |
sudo qhmiRM -start -instance=<ID> | Startet eine einzelne Instanz. |
sudo qhmiRM -stop -instance=<ID> | Stoppt eine einzelne Instanz. |
Dahinter steht ein Init-Skript unter /etc/init.d/qhmiserver_lynx. Ob eine Instanz beim Systemstart mitläuft, legen Sie im Runtime Manager fest.
ℹ️ Hinweis: Version 15 ist noch nicht veröffentlicht. Diese Anleitung gilt erst mit deren Erscheinen.
Ab Version 15 übernimmt systemd den Betrieb. Es gibt zwei Arten von Diensten: einen Sammeldienst quickhmi-Version_M für die gesamte Installation und je Instanz einen eigenen Dienst quickhmi-Version_M@<ID>, wobei <ID> die Nummer der Instanz ist.
Starten und stoppen
Die Befehle des Runtime Managers gibt es weiterhin, sie wirken jetzt über systemd. Beide Spalten sind gleichwertig:
| Aufgabe | Mit qhmiRM | Mit systemctl |
| Alle Instanzen starten | sudo qhmiRM -rd | sudo systemctl start quickhmi-Version_M |
| Alle Instanzen stoppen | sudo qhmiRM -sd | sudo systemctl stop quickhmi-Version_M |
| Eine Instanz starten | sudo qhmiRM -start -instance=1 | sudo systemctl start quickhmi-Version_M@1 |
| Eine Instanz stoppen | sudo qhmiRM -stop -instance=1 | sudo systemctl stop quickhmi-Version_M@1 |
| Zustand anzeigen | – | systemctl status quickhmi-Version_M@1 |
Eine Übersicht aller laufenden Instanzen:
systemctl list-units "quickhmi-Version_M@*"
Autostart beim Hochfahren
Ob eine Instanz beim Systemstart mitläuft, entscheiden Sie im Runtime Manager über die Einstellung „Autostart“ der jeweiligen Instanz, genau wie unter Windows. Beim Hochfahren geht der Sammeldienst alle Instanzen durch und startet die, bei denen der Autostart eingeschaltet ist.
Beachten Sie dabei eine Besonderheit: Die Instanzdienste werden absichtlich nicht mit systemctl enable aktiviert. Der Befehl systemctl is-enabled quickhmi-Version_M@1 meldet deshalb immer disabled, auch wenn die Instanz beim Hochfahren startet. Maßgeblich ist die Einstellung im Runtime Manager. Aktiviert ist allein der Sammeldienst:
systemctl is-enabled quickhmi-Version_M
Wird eine Instanz mit qhmiRM -stop angehalten, schaltet das zugleich ihren Autostart aus. Sie läuft nach einem Neustart des Systems also nicht wieder an, bis sie erneut gestartet wird.
Protokolle ansehen
Die Ausgabe jeder Instanz landet im Journal des Systems. Laufend mitlesen:
journalctl -u quickhmi-Version_M@1 -f
Nur die Meldungen seit dem letzten Systemstart, oder die der letzten Stunde:
journalctl -u quickhmi-Version_M@1 -b
journalctl -u quickhmi-Version_M@1 --since "1 hour ago"
Zusätzlich schreibt der Server seine eigenen Logdateien nach /var/log/quickhmi/Version_M.
Arbeitsspeicher einer Instanz
Die maximale Speichergröße stellen Sie im Runtime Manager je Instanz ein. Der Dienst übernimmt den Wert beim nächsten Start aus der Datei java.env im Verzeichnis der Instanz. Tragen Sie den Wert nicht von Hand in die Dienstdatei ein, er würde beim nächsten Update überschrieben.
Dienstkonto und Zugriffsrechte
Die Instanzen laufen unter dem Systemkonto quickhmi, nicht als root. Das Konto hat kein Passwort und keine Anmeldeshell. Daraus ergeben sich zwei Punkte für den Betrieb:
- Der Server darf nur unterhalb von
/var/lib/quickhmi/Version_Mund/var/log/quickhmi/Version_Mschreiben. Dateien, die ein Projekt zur Laufzeit beschreibt, etwa Berichte oder Exporte, müssen dort liegen. - Für serielle Schnittstellen ist das Konto Mitglied der Gruppe
dialout. Nutzt Ihre Anlage andere Geräte, muss das Konto in der jeweils zuständigen Gruppe sein.
Mehrere Instanzen
Jede Instanz hat ihren eigenen Dienst und ist unabhängig von den anderen: Sie können eine Instanz neu starten, ohne die übrigen zu unterbrechen. Wo die Dateien der Instanzen liegen, steht unter Installation.
