Zum Hauptinhalt springen
Für On-Premise-Installationen stellt VARIOS AI das Skript varios.sh bereit. Es überwacht im Hintergrund die Datei update_version und führt bei einer neuen Zielversion automatisch ein Update durch (Docker-Images ziehen, Container neu starten, Migrations-Skripte ausführen). Damit der Update-Helfer nach einem Neustart des Servers zuverlässig startet, können Sie ihn als systemd-Service registrieren.
Docker muss installiert und startbar sein. After=docker.service legt die Start-Reihenfolge fest; Wants=docker.service startet Docker beim Start dieses Services mit — auch wenn Docker nicht für den Autostart aktiviert ist. Für Server-Neustarts empfehlen wir zusätzlich systemctl enable docker.service. Der Service führt varios.sh --daemon direkt aus — die Ausgabe landet in journald, nicht in varios.log.

Service-Datei

Passen Sie WorkingDirectory an das Verzeichnis an, in dem varios.sh liegt:
varios-update.service
[Unit]
Description=Start varios.sh
After=docker.service
Wants=docker.service

[Service]
Type=simple
ExecStart=/bin/sh ./varios.sh --daemon
WorkingDirectory=/docker/varios/

[Install]
WantedBy=multi-user.target

Einrichtung

1

WorkingDirectory anpassen

Setzen Sie WorkingDirectory in varios-update.service auf den absoluten Pfad zum VARIOS-Installationsverzeichnis mit varios.sh, docker-compose.yml und .env (z. B. /docker/varios/).
2

Service-Datei installieren und systemd neu laden

cp varios-update.service /etc/systemd/system/
systemctl daemon-reload
Ohne daemon-reload erkennt systemd die neue Service-Datei nicht — enable oder start schlagen dann fehl.
3

Service aktivieren und starten

systemctl enable --now varios-update.service
4

Einrichtung prüfen

systemctl status varios-update.service
Der Status sollte active (running) anzeigen.
Logs live mitlesen: journalctl -u varios-update.service -f

Betrieb

Steuern Sie den Helfer ausschließlich über systemd — nicht über ./varios.sh --stop. Der systemd-Service startet varios.sh --daemon direkt im Vordergrund und legt dabei keine varios.pid an. ./varios.sh --stop greift daher nur, wenn der Helfer zuvor manuell ohne systemd gestartet wurde.
# Status prüfen
systemctl status varios-update.service

# Update-Überwachung stoppen (z. B. vor Wartungsarbeiten)
systemctl stop varios-update.service

# Update-Überwachung wieder starten
systemctl start varios-update.service

# Autostart deaktivieren (Service bleibt bis zum nächsten Stopp aktiv)
systemctl disable varios-update.service
systemctl stop beendet die Update-Überwachung. Laufende docker compose-Befehle innerhalb eines Updates können dabei unterbrochen werden, weil systemd den Service-Prozess und seine Kindprozesse beendet (KillMode=control-group).

Logs und Fehlersuche

QuelleBefehlInhalt
systemd (primär)journalctl -u varios-update.service -fUpdate-Prüfungen, Update-Ablauf, Fehler
systemd (letzte Einträge)journalctl -u varios-update.service -n 50 --no-pagerKürzliche Historie für die Fehlersuche
varios.log und varios.pid werden nur erzeugt, wenn Sie ./varios.sh ohne systemd manuell starten — nicht bei Betrieb über diesen Service.

Typische Prüfschritte

  • Läuft Docker? systemctl status docker.service
  • Stimmt WorkingDirectory mit dem Installationsverzeichnis überein?
  • Wurde nach dem Kopieren der Service-Datei systemctl daemon-reload ausgeführt?
  • Details: journalctl -u varios-update.service -n 50 --no-pager
  • Enthält .env die aktuelle VERSION=?
  • Liegt in update_version eine abweichende Zielversion?
  • Protokoll prüfen: journalctl -u varios-update.service -f
  • Prüfen, ob zusätzlich ein manuell gestarteter Helfer läuft: pgrep -af varios.sh
  • Manuell gestarteten Helfer beenden: ./varios.sh --stop (nur wenn varios.pid existiert)
  • systemd-gesteuerten Helfer beenden: systemctl stop varios-update.service