Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Как выключить компьютер по истечении периода бездействия : Linux

27.04.2024 0:04


06.07.2015 12:29
OlegON
 
В общем, надо мне было выключить компьютер, если за ним долго никого нет. Все штатные средства вели к засыпанию или хибернации. Вопрос на форуме Fedora остался без ответа, хотя хотел решить штатными средствами через /etc/pm/sleep.d и прочее. Сделал костыль. Мне надо было, чтобы через час бездействия комп вырубался.
Настраиваем так, чтобы через 10 минут неактивности выключался монитор.
Создаем скрипт
Код:
#!/bin/bash
if DISPLAY=:0 xset -q | tail -n 1 | grep 'Monitor is Off' >/dev/null; then
 for i in {1..4}
 do
  if [ ! -f /tmp/monitcnt$i ] ; then
  touch /tmp/monitcnt$i
  exit
  fi
 done
 /sbin/poweroff
else
rm -f /tmp/monitcnt*
fi
Затем в крон запихиваем выполнение скрипта
Цитата:
*/10 * * * * root /root/inactiv.sh
Т.е. каждые 10 минут, запускается скрипт, которые проверяет, включен ли экран. После 10 минут бездействия экран гаснет, скрипт начинает создавать файлики с номерами. Если экран загорится, то все файлики будут удалены. Если 4 файлика будут созданы (на >50 минут) будет выполнена poweroff.
Часовой пояс GMT +3, время: 00:04.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.