Запуск: Xubuntu 14.04 32bit.
Я прочитал несколько устаревших, не работающих, работающих разных, которые я хочу получить здесь и в других местах. У меня был сценарий, который привел к отключению моего ноутбука во время загрузки после того, как я установил его автозапуск.
Я также попытался установить complexshutdown, несмотря на то, что этот инструмент скончался в 2011 году и имеет ошибку на Lauchpad, что его точное опция недоступна. Он даже не установлен на 14.04 здесь.
Итак, если я могу снова задать этот вопрос, не будучи наказанным «duplicate of» ...
Я ищу простой прямой скрипт который фактически протестирован и работает, что я могу поместить в автозапуск, который ничего не делает, кроме проверки активности (мышь / клавиатура) и выключения моего ноутбука, если в течение 2 часов его не было.
Спасибо. 5]
После просмотра нескольких вариантов отключения после определенного времени бездействия, кажется, что 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 час, невозможен без изменения его исходного кода и перекомпиляции.Это мой упрощенный скрипт, для этого вам нужно установить пакет «xprintidle» и изменить команду shutdown, чтобы можно было запускать без sudo / password.
sudo chmod u+s /sbin/shutdown
sudo apt-get install xprintidle
Script
[F2]Измененный скрипт @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