Бег: Xubuntu 14.04 32bit.
Я прочитал несколько устаревших, не работающих, работающих по-разному, что я хочу ответы здесь и в других местах. У меня был скрипт, который приводил к выключению моего ноутбука во время загрузки после того, как я установил его в автозапуск.
Я также попытался установить complexshutdown, несмотря на то, что этот инструмент умер в 2011 году, и в Lauchpad есть ошибка, из-за которой его точная опция недоступна. Он даже не установлен здесь 14.04.
Так что, если я могу задать этот вопрос снова, не будучи наказан «дубликатом» ...
Я ищу простой прямой сценарий, который на самом деле протестирован и работает, и я могу включить его в автозапуск, который ничего не делает, кроме проверки активности (мышь / клавиатура) и выключения ноутбука, если его не было в течение 2 часов. .
Благодаря.
Посмотрев на многие опции для того, чтобы закрыться после определенного времени неактивности, это кажется этим xautolock
самый легкий путь. Все кредиты к Sparhawk для упоминания о xautolock
.
Благодаря Sneetsher для указания xscreensaver. Используя xscreensaver, я мог вручную указать, что сделать после определенного количества времени неактивности. Для использования xscreensaver необходимо установить его использование:
sudo apt-get install xscreensaver
или установите его от центра программного обеспечения и затем выполните его однажды использование:
xscreensaver-demo
или введите "xscreensaver" на тире и откройте "Screensaver".
Это создаст a ~/.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
зарегистрируйте здесь.
Это должно выключение питания Ваша машина после двух часов неактивности или безотносительно времени, которое Вы указываете в сценарии.
Примечания:
Взгляните на этот вопрос видеть, как добавить xscreensaver на начальной загрузке.
Я пытался использовать сложное завершение работы, но ошибка здесь, кажется, влияет на меня, так не мог произойти. Иначе графическое приложение было бы доступно для этого.
Это могло быть достигнуто с помощью xautolock, однако, поскольку redanimalwar указал, timout большее, чем 1 час не возможен, не изменяя его исходный код и перекомпиляцию.
Это - вероятно, лучшее решение. Никакая потребность в тонкой настройке экранной заставки и выполнении.
Установка sudo apt-get install xprintidle
Помещенный этот сценарий в автоматический запуск:
#!/bin/bash
idletime=$((1000*60*60*2)) # 2 hours in milliseconds
while true; do
idle=`xprintidle`
echo $idle
if (( $idle > $idletime )); then
#sudo shutdown -P now
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true
fi
sleep 1
done
комментарии и ответ @Jobin действительно приводили меня исследовать меня снова, и я на самом деле нашел незаконченный сценарий с xprinttime
, но без любого цикла в сценарии. Вероятно, не законченный это, потому что мой Linux/удар knowlege не был хорош в то время. Я также помещал сценарий, который я имел в rc.local, или что-то как этот инициировало завершение работы на начальной загрузке. Благодаря @Jobin для напоминания, как добавить приложения запуска в XFCE, я уже знал это, но... и кредиты на dbus вещь, никогда не видел, что, лучше тогда завершите работу, так как это не требует корня.
Измененный @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
Это - мой упрощенный сценарий, это требует, чтобы Вы установили "xprintidle" пакет и изменили команду завершения работы так, чтобы было возможно работать без sudo/password.
sudo chmod u+s /sbin/shutdown
sudo apt-get install xprintidle
Сценарий
#!/bin/bash
idletime=$((15*60*1000)) # 15 min in milliseconds
idle=0
while [ $idle -lt $idletime ];do
idle=`xprintidle`
sleep 1
done
shutdown -P now
refind.conf
обычно будет доступно как /boot/efi/EFI/refind/refind.conf
; однако, это предполагает, что ESP смонтирован в /boot/efi
. Если it' s не, you' ll должен выяснить, которые делят Ваш ESP, и смонтируйте его там (или где-либо еще that' s удобный).
– Rod Smith
3 October 2015 в 01:30