Spannung/spannung.service
2026-06-06 21:02:32 +02:00

44 lines
2 KiB
Desktop File

# ==============================================================================
# KURZANLEITUNG ZUR INSTALLATION UND VERWALTUNG
# ==============================================================================
# 1. Datei kopieren nach: /etc/systemd/system/spannung.service
# 2. Systemd neu laden: sudo systemctl daemon-reload
# 3. Autostart aktivieren: sudo systemctl enable spannung.service
# 4. Dienst starten: sudo systemctl start spannung.service
#
# Befehle zur Steuerung:
# - Status prüfen: sudo systemctl status spannung.service
# - Live-Logs einsehen: sudo journalctl -u spannung.service -f
# - Dienst stoppen: sudo systemctl stop spannung.service
# - Dienst neu starten: sudo systemctl restart spannung.service
# ==============================================================================
#
# gewohnter rsync-Befehl (Beispiel)
# rsync -avz ./app/ pi@raspirotor:~/spannung/
# 2. Den Dienst auf dem Pi remote aktualisieren und neu starten
# ssh -t afu@raspirotor "sudo cp ~/spannung/app/spannung.service /etc/systemd/system/ && sudo systemctl daemon-reload && sudo systemctl restart spannung.service"
[Unit]
Description=Spannung Control Service
After=network-online.target i2c.service
Wants=network-online.target
StartLimitIntervalSec=0
[Service]
Type=simple
# Die ExecStartPre-Zeile muss bei 32-Bit auskommentiert werden, da kein i2cdetect verfügbar ist
ExecStartPre=/bin/bash -c 'for i in {1..10}; do i2cdetect -y 1 | grep -q "48" && exit 0; echo "warte auf ADS1115..."; sleep 2; done; exit 1'
ExecStart=/home/afu/spannung/spannung
WorkingDirectory=/home/afu/spannung
User=afu
#Restart=always
Restart=on-failure # Startet den Dienst nur bei Fehlern neu
RestartSec=5s # Wartet 5 Sekunden vor dem nächsten Versuch
StartLimitIntervalSec=60s # Innerhalb von 60 Sekunden
StartLimitBurst=3 # Maximal 3 Versuche in diesem Intervall
StandardOutput=append:/home/afu/spannung/spannung.log
StandardError=append:/home/afu/spannung/spannung.log
[Install]
WantedBy=multi-user.target