[Unit] Description={{ description }} # Stellt sicher, dass das Netzwerk bereit ist After=network-online.target Wants=network-online.target [Service] # 'simple' ist der Standard, 'exec' wartet, bis der Prozess wirklich gestartet ist Type={{ service_type }} # Arbeitsverzeichnis (wichtig für relative Pfade im Skript) WorkingDirectory={{ working_dir }} # Ausführen als spezifischer Benutzer (Sicherheit!) User={{ user }} Group={{ user }} # Umgebungsvariablen (z.B. für Python Pfade oder API Keys) {% if env_vars -%} {% for key, value in env_vars.items() -%} Environment="{{ key }}={{ value }}" {% endfor -%} {% endif %} # Vor dem Start kurz warten (optional, falls nötig) {% if wait_before_start -%} ExecStartPre=/usr/bin/sleep {{ wait_before_start }} {% endif %} # Der eigentliche Befehl ExecStart={{ exec_command }} # Neustart-Logik: Startet den Dienst automatisch neu, wenn er abstürzt Restart=on-failure # Wartezeit zwischen Neustartversuchen RestartSec=5s [Install] # Definiert, wann die Unit beim Booten gestartet wird WantedBy=multi-user.target