Ich versuche Strom zu sparen, indem ich Desktops in den Suspend-Modus versetze, wenn sie inaktiv sind. Viele Desktops werden jedoch auch von ihren Eigentümern über SSH angesprochen. Es gibt eine Wakeonlan-Lösung, mit der Besitzer den Computer einschalten können. Das Problem besteht jedoch darin, dass der Computer nach 10 Minuten wieder automatisch angehalten wird, obwohl die SSH-Verbindung aktiv ist.
Ich versuche, die aktiven SSH-Sitzungen in die Definitionen der "Aktivität" aufzunehmen.
Die Frage ist, ob dies über das Setzen einer Polkit-Regel möglich ist. Kann man ein Skript erstellen, das vor dem eigentlichen Suspend ausgeführt wird, und es abbrechen, wenn SSH-Sitzungen gefunden werden? Ich brauche einen sauberen, legitimen Weg, um das zu tun. Wenn nicht, dann sind auch hackige Wege willkommen.
Aktuelle naive Hacky-Lösung: Bearbeiten /usr/sbin/pm-suspend:
#check for SSH sessions, and prevent suspending:
if [ "$(who | grep -cv "(:")" -gt 0 ]; then
echo "SSH session(s) are on. Not suspending."
exit 1
fi
Dies dient dem Zweck. Ich weiß aber nicht, wann ein Update die Datei überschreibt /usr/sbin/pm-suspend. Ich weiß auch nicht, wie das mit anderen Suspend-Implementierungen wie tuxonice funktioniert.
[wenn Sie schreiben if who | grep -qv :0; then(vorausgesetzt, Sie haben ein POSIX-konformes grepFormat wie GNU grep).
grep -cv :0anstatt durch zu gehenwc?