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 grep
Format wie GNU grep).
grep -cv :0
anstatt durch zu gehenwc
?