- Shell 100%
| install.sh | ||
| README.md | ||
| ssh-auto-suspend | ||
| ssh-auto-suspend.service | ||
SSH Auto Suspend
Dieses kleine systemd-Projekt haelt einen Linux-Rechner wach, solange mindestens eine SSH-Sitzung aktiv ist. Sobald die letzte SSH-Verbindung getrennt wurde, wartet das Script eine einstellbare Zeit und versetzt den Rechner danach in Standby.
Wenn sich waehrend der Wartezeit wieder jemand per SSH verbindet, wird der Standby abgebrochen.
Dateien
ssh-auto-suspend: Ueberwachungs-Scriptssh-auto-suspend.service: systemd-Dienstinstall.sh: kopiert die Dateien an die richtigen Stellen und aktiviert den Dienst
Verzoegerung anpassen
Die Standby-Verzoegerung stellst du direkt im Script ein:
SUSPEND_DELAY_SECONDS="${SUSPEND_DELAY_SECONDS:-60}"
Beispiele:
60 # 1 Minute
300 # 5 Minuten
900 # 15 Minuten
1800 # 30 Minuten
Alternativ kannst du spaeter auch in der systemd-Unit eine Environment-Zeile setzen:
Environment=SUSPEND_DELAY_SECONDS=300
Installation
Auf dem Linux-Rechner im Projektordner ausfuehren:
chmod +x install.sh
sudo ./install.sh
Danach laeuft der Dienst automatisch.
Status pruefen
systemctl status ssh-auto-suspend.service
systemd-inhibit --list
Waehrend eine SSH-Sitzung aktiv ist, sollte bei systemd-inhibit --list ein Eintrag von ssh-auto-suspend auftauchen.
Logs ansehen
journalctl -u ssh-auto-suspend.service -n 100 --no-pager
Dienst stoppen oder deaktivieren
Nur stoppen:
sudo systemctl stop ssh-auto-suspend.service
Dauerhaft deaktivieren:
sudo systemctl disable --now ssh-auto-suspend.service
Alte SSH-Sitzungen aufraeumen
Falls loginctl noch tote SSH-Sitzungen anzeigt, kannst du gezielt alle SSH-Sitzungen des Users chch beenden:
for sid in $(loginctl list-sessions --no-legend | awk '$3 == "chch" {print $1}'); do
remote=$(loginctl show-session "$sid" -p Remote --value)
service=$(loginctl show-session "$sid" -p Service --value)
if [ "$remote" = "yes" ] && { [ "$service" = "sshd" ] || [ "$service" = "ssh" ]; }; then
echo "Kille SSH-Session $sid von chch"
sudo loginctl terminate-session "$sid"
fi
done
Hinweis
Der Rechner geht nicht direkt nach dem Booten in Standby. Standby wird erst ausgeloest, nachdem mindestens einmal eine SSH-Sitzung aktiv war und danach die letzte SSH-Sitzung beendet wurde.