Как я могу автоматически выключить систему после определенного настраиваемого времени?
Откройте окно терминала и введите:
sudo shutdown -h +60
и просто замените 60 на любое количество минут, которое вы хотите потратить.
Больше информации здесь:
http://ubuntuforums.org/archive/index.php/t-473173.html http://www.linux.org /lessons/beginner/l5/lesson5a.html
Вы можете использовать
ComplexShutdown https://launchpad.net/complexshutdown
или EasyShutdown https://launchpad.net/easyshutdown
Поскольку тема о закрытии ПК после определенного периода бездействия перенаправлена к этой теме, я объясню эту проблему здесь.
Я потратил много времени на решение этой проблемы, поэтому считаю полезным поделиться ею, чтобы упростить эту проблему для других. Я пробовал разные программы, но они не работали для меня, поэтому я нашел использование короткого сценария с cronjob лучшим решением.
Сначала я ссылался на пост Timed Shutdown - завершение работы через 30 минут
Я скопирую его ниже, а затем объясню улучшения, чтобы он работал:
Установите xprintidle. Этот инструмент дает время простоя пользователя.
sudo apt-get install xprintidle
Создайте скрипт autoshutdown.sh, который проверяет время простоя и дает команду компьютеру выключиться, если он простаивает в течение 30 минут.
idle=$(xprintidle) if [ $idle -gt 1800000 ]; then shutdown -h now fi
Сделайте для этого cronjob, который время от времени проверяет, была ли система бездействующей слишком долго и если она простаивала более 30 минут, она выключится. Обратите внимание, что cronjob должен быть сделан для пользователя root.
Этот скрипт нуждается в некоторых улучшениях, например:
idle=`env DISPLAY=:0 su OUR_USER -c xprintidle 2>&1`
OUR_USER
- это пользователь, к которому мы обращаемся для проверки времени простоя (не пользователь root)
DISPLAY=:0
подходит для одного дисплея рабочего стола (запустите команду env
, чтобы прочитать DISPLAY
в вашей ситуации)
, если скрипт выполняется с помощью OUR_USER
, строку выше можно уменьшить:
idle=`env DISPLAY=:0 xprintidle 2>&1`
Эта тема описана http://ubuntuforums.org/showthread.php?t=1069602
, если скрипт запускается командой OUR_USER
, shutdown
должен предшествовать sudo
sudo shutdown -h now
Мой сценарий запускался от cron до строки в файле cron:
*/5 * * * * /home/OUR_USER/autoshutdown.sh
Если скрипт не запускается пользователем root, следует не забыть добавить строку:
ALL ALL=(ALL) NOPASSWD: /sbin/shutdown
в файл sudoers , поэтому shutdown ] для выполнения команды не требуется пароль.
Я попробовал такие cronjobs на 2 похожих дистрибутивах Lubuntu 12.04.4 RC LXLE 32-bit ( http://www.lxle.net/ )
В одной системе он работает только с использованием корневого кроноборота, заданного в файле:
/ var / spool / cron / crontabs / root
Другая проблема в том, что xprintidle в моей системе давал иногда случайные для меня значения , а иногда и логически инкрементно. Окончательный результат - моя система обычно отключается через 20 минут, может быть, если я установлю максимальное значение холостого хода на 30 минут. Я думаю, что виновником является xscreensaver , который не работает так, как задано введенными параметрами.
Для этого можно использовать сон
. Они используются для задержки/приостановки операции. В сочетании с выключением
вы получаете таймер отключения питания.
Пример сна через 1 час:
sleep 3600 && sudo shutdown now
Вы также можете использовать математику, вот чтобы отключить питание через 3 часа:
sleep $((3600*3)) && sudo shutdown now