Как отключить Ubuntu после (2 часа) простоя?

Запуск: Xubuntu 14.04 32bit.

Я прочитал несколько устаревших, не работающих, работающих разных, которые я хочу получить здесь и в других местах. У меня был сценарий, который привел к отключению моего ноутбука во время загрузки после того, как я установил его автозапуск.

Я также попытался установить complexshutdown, несмотря на то, что этот инструмент скончался в 2011 году и имеет ошибку на Lauchpad, что его точное опция недоступна. Он даже не установлен на 14.04 здесь.

Итак, если я могу снова задать этот вопрос, не будучи наказанным «duplicate of» ...

Я ищу простой прямой скрипт который фактически протестирован и работает, что я могу поместить в автозапуск, который ничего не делает, кроме проверки активности (мышь / клавиатура) и выключения моего ноутбука, если в течение 2 часов его не было.

Спасибо. 5]

1
задан 3 April 2014 в 14:32

3 ответа

После просмотра нескольких вариантов отключения после определенного времени бездействия, кажется, что xautolock - самый простой способ. Все кредиты Sparhawk за упоминание о xautolock.

Спасибо Sneetsher за указание на xscreensaver. Используя xscreensaver, я мог бы вручную указать, что делать после определенного количества времени бездействия. Чтобы использовать xscreensaver, вам необходимо установить его, используя:

sudo apt-get install xscreensaver

или установить его из программного центра, а затем запустить его один раз, используя:

xscreensaver-demo

или введите «xscreensaver» на тире и открыть «Заставка».

Это создаст файл ~/.xscreensaver. Откройте его и найдите строку:

programs:                                                                     \

и добавьте:

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true \n\

чуть ниже строки

programs:                                                                     \

.

Вы можете указать время, после которого выключение должно быть инициировано путем изменения строки, начинающейся с timout. Измените его на

timeout:        2:00:00

до выключения через два часа.

Посмотрите на мой файл .xscreensaver Sneetsher .

] Это должно отключить вашу машину после двух часов бездействия или в любое другое время, указанное в сценарии.

Примечания:

Посмотрите на этот вопрос, чтобы увидеть, как добавить xscreensaver при загрузке , Я попытался использовать сложное завершение работы, но ошибка здесь, похоже, влияет на меня, так что этого не произошло. В противном случае для этого было бы доступно графическое приложение. Это может быть достигнуто с помощью xautolock, однако, как указано в redanimalwar, выход из строя, превышающий 1 час, невозможен без изменения его исходного кода и перекомпиляции.
6
ответ дан 24 May 2018 в 09:57
  • 1
    & Quot; -time Указывает основной интервал ожидания. Значение по умолчанию - 10 минут, минимум - 1 минута, а максимум - 1 час. & Quot; – redanimalwar 5 May 2014 в 17:29
  • 2
    @redanimalwar: Плохо, я этого не видел. Будет проверять альтернативы. – jobin 5 May 2014 в 17:35
  • 3
    @redanimalwar: изменили мой ответ, чтобы использовать xscreensaver для отключения питания, посмотрите. – jobin 5 May 2014 в 18:45
  • 4
    Все еще ищущее лучшее решение, тогда это, я хочу, чтобы сценарий в моем собственном ответе работал. Я дам вам 50 очков, если ничего лучше не появится. И вы должны, вероятно, упомянуть, что нужно установить заставку в "single" а затем выберите новую команду в списке, который будет использоваться вместо заставки в настройках заставки. Вы можете запустить команду xscreensaver-demo, чтобы запустить ее через 2-й раз после добавления команды. Мне любопытно, какой механизм или команда использует заставка для измерения времени простоя. Возможно, я перекомпиляю xautolock, этот лимит на 1 час для меня не имеет смысла. – redanimalwar 6 May 2014 в 10:49
  • 5
    @redanimalwar: я могу отключиться, даже если скринсейвер «случайный». и не «одиночный». Почему вы хотите, чтобы он был установлен в «single» ?? – jobin 7 May 2014 в 17:19

Это мой упрощенный скрипт, для этого вам нужно установить пакет «xprintidle» и изменить команду shutdown, чтобы можно было запускать без sudo / password.

sudo chmod u+s /sbin/shutdown
sudo apt-get install xprintidle

Script

[F2]
2
ответ дан 24 May 2018 в 09:57

Измененный скрипт @redanimalwar, чтобы предупредить пользователя и дать шанс отменить выключение. Для тестов используется 3 секунды и простое сообщение. Пожалуйста, приспосабливайтесь к своим вкусам. HTH.

#!/bin/bash
#https://askubuntu.com/questions/442795/
#http://ubuntuforums.org/showthread.php?t=2172828

function showProgress(){
#
# Force Zenity Status message box to always be on top.
sleep 1 && wmctrl -r "Progress Status" -b add,above &

(
echo "# Shutting Down in 5" ; sleep 2
echo "25"
echo "# Shutting Down in 4" ; sleep 2
echo "50"
echo "# Shutting Down in 3" ; sleep 2
echo "75"
echo "# Shutting Down in 2" ; sleep 2
echo "99"
echo "# Shutting Down in 1" ; sleep 2
echo "# Shutting Down now" ; sleep 2
echo "100"

) |
zenity --progress \
  --title="Progress Status" \
  --text="First Task." \
  --percentage=0 \
 --auto-close

return $?

}


#idletime=$((1000*60*60*2)) # 2 hours in milliseconds
idletime=$((1000*3)) # test, 3seconds

while true; do
    idle=`xprintidle`
    echo $idle
    if (( $idle > $idletime )); then
        showProgress && \
        #sudo shutdown -P now
        #dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
        #echo for tests. use command above to actually shutdown
        echo shuting down the system. Just kidding  ^_^ \
        && exit 0
    fi
    sleep 1
done
1
ответ дан 24 May 2018 в 09:57

Другие вопросы по тегам:

Похожие вопросы: