Sto cercando di risparmiare energia passando i desktop alla modalità di sospensione quando sono inattivi. Ma molti desktop sono accessibili anche tramite SSH dai loro proprietari. Esiste una soluzione wakeonlan implementata per consentire ai proprietari di accendere la macchina, ma il problema è che le macchine si sospenderanno automaticamente tra 10 minuti, anche se la connessione SSH è attiva.
Quello che sto cercando di fare è includere le sessioni SSH attive nelle definizioni "attività".
La domanda è: si può fare impostando una regola polkit? Può essere fatto inserendo uno script che viene eseguito prima della sospensione effettiva e lo interrompe se vengono rilevate sessioni SSH? Ho bisogno di un modo pulito e legittimo per farlo. Altrimenti, anche i modi confusi sono i benvenuti.
La soluzione ingenua hacky attuale: modifica /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
Questo serve allo scopo. Ma non so quando un aggiornamento sovrascriverà il file /usr/sbin/pm-suspend
. Inoltre non so come funzionerà con altre implementazioni di sospensione come tuxonice.
[
se si scrive if who | grep -qv :0; then
(supponendo che si abbia un POSIX conforme grep
come GNU grep).
grep -cv :0
invece di passarewc
?