Как я могу автоматически выключить систему через определенное время?

Ответы:

50

Откройте окно терминала и введите:

sudo shutdown -h +60

и просто замените 60 на любое количество минут, которое вы хотите занять.

Больше информации здесь:

http://ubuntuforums.org/archive/index.php/t-473173.html http://www.linux.org/lessons/beginner/l5/lesson5a.html

Даниил
источник
2
-PПараметр (отключение питания) , кажется, хорошая идея тоже.
htorque
выключение + м 60 у меня не работает. дает мне сообщение об ошибке и говорит, что есть недопустимое значение времени.
NES
Я подумал, что это странно ... это не должно быть "+ m 60", это должно быть "+60" (или, может быть, больше похоже на "-h +60". Кажется, в нижней части этой страницы, как это работает: linux.org/lessons/beginner/l5/lesson5a.html .
Даниил
«shutdown -P 1» - работает хорошо и отключает систему за 1 минуту, без необходимости в единицах времени.
3
2
на самом деле это sudo ..... потому что нужны привилегии суперпользователя
Shirish Herwade
8
  • Вы можете использовать gshutdown Установить gshutdown
  • После установки его можно найти в разделе Приложения → Аксессуары → GShutdown. альтернативный текст
  • Также взгляните на этот метод .
karthick87
источник
Кто-нибудь может сказать мне, почему они проголосовали?
karthick87
2
я не голосовал против. Но Gshutdown не работает гладко здесь. Когда я выбираю выключение, он вместо входа пользователя?
NES
Я тоже, он выходит из системы пользователя, и ноутбук переходит в спящий режим
lewis4u
3

Поскольку тема Абт выключая компьютер после определенного периода бездействия будет перенаправлен на эту тему, я объясню этот вопрос здесь.

Я потратил много времени, чтобы решить эту проблему, поэтому считаю полезным поделиться ею, чтобы сделать эту проблему простой для других. Я пробовал разные программы, но они не работают для меня, поэтому я нашел использование короткого сценария с 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 
  • каждые 5 минут
  • OUR_USER должен быть заменен как ранее для пользователя, на которого мы ссылаемся.

Если скрипт не запускается пользователем root, не забудьте добавить строку:

ALL ALL=(ALL) NOPASSWD: /sbin/shutdown 

в файле sudoers , поэтому команде shutdown не требуется пароль для выполнения.


Я попробовал такие cronjobs на 2 похожих дистрибутивах Lubuntu 12.04.4 RC LXLE 32-bit ( http://www.lxle.net/ )

В одной системе это работает только с использованием корневого cronjob, установленного в файле:

/ Вар / катушка / хрон / crontabs / корень


ПРЕДОСТЕРЕЖЕНИЕ

Другая проблема заключается в том, что xprintidle в моей системе дает иногда случайные для меня значения, а иногда и логически инкрементные. Окончательный результат - моя система обычно отключается через 20 минут, может быть, если я установлю максимальное значение холостого хода на 30 минут. Я думаю, что виновником является xscreensaver, который не работает так, как задано введенными параметрами.

Михал
источник