Я намагаюся економити енергію, перемикаючи настільні та призупиняючи режим, коли вони неактивні. Але багато робочих столів також мають доступ через SSH власниками. Є розроблене рішення wakeonlan, яке дозволяє власникам увімкнути машину, але проблема полягає в тому, що машини автоматично припинять роботу через 10 хвилин, навіть якщо з'єднання SSH увімкнено.
Що я намагаюся зробити, це включити активні сеанси SSH у визначення "активності".
Питання, чи можна це зробити, встановивши правило polkit? Чи можна це зробити, поставивши скрипт, який запускається до фактичного призупинення, і скасовує його, якщо знайдені сеанси SSH? Мені потрібен чистий законний спосіб зробити це. Якщо це не так, то також вітаються хитрі способи.
Поточне наївне хакі рішення: редагувати /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
Це служить меті. Але я не знаю, коли оновлення замінить файл /usr/sbin/pm-suspend
. Я також не знаю, як це буде працювати з іншими тимчасовими реалізаціями, як tuxonice.
[
якщо ви пишете if who | grep -qv :0; then
(якщо припустимо, що POSIX відповідає grep
типу GNU grep).
grep -cv :0
замість того, щоб пройтиwc
?