Выключение линукс по таймеру

Немного основ основ

В Linux есть несколько способов выключить компьютер. Это команды halt, reboot и shutdown (которая является чем-то вроде расширенного варианта этих команд, потому что умеет выключать и перезагружать компьютер), а также выключение и перезагрузка при помощи PolyciKit. Последний вариант не требует пароля не требует ввода пароля для выключения, а первые требуют пароль.

Так, например, ввод в терминале
reboot
выдаст в ответ:
reboot: Необходимо быть суперпользователем
Поэтому надо написать
sudo reboot
ввести Ваш пароль и увидеть, что компьютер благополучно перезагружается.

Если Вы введете в терминале
shutdown —help
то увидите, что эта команда может не только выключать, но и перезгружать компьютер.
Парочка примеров:
sudo shutdown -r now
перезагрузит (ключ -r) компьютер немедленно (now), а
sudo shutdown -r 120
перезагрузит компьютер через 120 минут (то есть через 2 часа). А так:
sudo shutdown -h 69 Выключаю комп
выключит (-h) компьютер через 69 минут (1 час и 9 минут). И при этом будет выводиться при выключении не стандартные уведомления
warl0ck@desktop:~$ sudo shutdown -h 69
Широковещательное сообщение от warl0ck@desktop
(/dev/pts/0) в 16:24.
The system is going down for halt in 69 minutes!
А такое:
warl0ck@desktop:~$ sudo shutdown -h 69 Выключаю комп
Широковещательное сообщение от warl0ck@desktop
(/dev/pts/0) в 16:22.
The system is going down for halt in 69 minutes!
Выключаю комп
Ввод же команды
sudo shutdown -c
отменяет запланированное выключение или перезагрузку компьютера.

А теперь практика

Мне нравится включать что-нибудь на сон грядущий. Музыку там или фильм какой… Я каждый день включаю что-нибудь перед сном, пишу sudo shutdown -h 90, ввожу пароль и ложусь спать. Но каждый день вводить пароль утомляет. Поэтому я задумался о том, как бы автоматизировать выключение. Тем более, что в одном из дистрибутивов (возможно, Crunchbang) была в меню Openbox возможность выбирать, когда же выключить компьютер, без ввода пароля. А значит, что было бы круто и мне так сделать. Мне повезло и решение было найдено. И я поделюсь им с вами, мне не жалко:)

WARNING! AHTUNG! ВНИМАНИЕ! Невнимательность может привести к поломке системы. И я не несу ответственности, если Вы что-то там по невнимательности поломаете. Неправильное редактирование файла /etc/sudoers может привести к тому, что станет невозможным использование sudo, а значит, что придется (если у Вас *buntu и некоторые другие дистрибутивы. а в Arch, например, имеется неотключенный root, можно зайти и пересоздать пользователя)

В эмуляторе терминала введите команду
sudo visudo
и добавьте
имя_пользователя ALL = NOPASSWD: /sbin/shutdown
Здесь:
имя_пользователя — Ваше имя пользователя. Логин, под которым входите в систему;
ALL — разрешение входить с любого компьютера сети
NOPASSWD: /sbin/shutdown — разрешение вводить без пароля команду shutdown.

Читайте также:  Изменить размер папки linux

и сохраните файл под именем /etc/sudoers. Хотя можете и просто открыть от суперпользователя этот файл в любом текстовом редакторе. Но в этом случае не проверяется синтаксис заполнения файла, поэтому осторожнее.

Введите
sudo -K
чтобы забыть введенный ранее пароль sudo (они запоминаются на некоторое время и без этого эксперимент будет не чистым) и попробуйте ввести
sudo shutdown -r now
и убедитесь, что ввода пароля и правда не потребовалось.

Теперь можно создать, например, на рабочем столе ярлыки (в XFCE это клик правой кнопкой мыши -«создать значок запуска» — Имя, комментарий любые, выбрать какой-нибудь подходящий значок из предложенных, а команда для выключения
sudo shutdown -h +x
где х — время в минутах, которое вам нужно. Можно создать не один ярлык и для разных времен.

А можно, как я, добавить пункты в меню XFCE. Правой кнопкой по меню, «свойства» — «изменить меню» и тут уже делаете так, как хотите. Мое меню выглядит так:

Меню XCFE

Ссылки

Ну и тразицонно интересующимся более подробно sudo рекомендую эти сайты:

Источник

Отключить компьютер в заданное время

Я хочу, чтоб моя Ubuntu автоматически отключалась каждый день в определенное время. Как этого можно добиться?

2 ответа 2

На помощь нам придет юниксный демон по имени cron .
Для того, чтобы поставить задачу в расписание, мы добавим ее в файл /etc/crontab .
Открываем терминал — Ctrl Alt T .
Файл можно редактировать такой командой:

Для отключения компьютера каждый день в 23:03 добавим в файл такую строчку:

03 23 * * * root shutdown -h now 

Последняя строчка файла должна быть пустая.

Эта часть была написана по мотивам askubuntu.

Объяснение подробнее.

В самом этом файле /etc/crontab объясняется формат таблицы задач:

# m h dom mon dow user command 

Первые два поля — минута и час запуска задачи,
3-е поле (dom) — день месяца (Day of Month),
затем месяц,
5-е поле (dow) — день недели,
затем пользователь, от чьего имени будет запускаться команда,
и, собственно, команда.

Время запуска
Все условия (времени запуска) проверяются по «логическому И», кроме условий «день недели» и «день месяца» — указанные совместно, они обрабатываются по «логическому ИЛИ», то есть «по любому из дней», что отражено в документации (Ubuntu, Debian, FreeBSD). (См. Википедия, man 5 crontab ). Если вы хотите проверять их по «логическому И», делайте это в самой команде.

Например, перезагрузка в пятницу, 13-го:

0 0 13 * * root [ "$(date '+\%u')" -eq 5 ] && shutdown -r now 

Crontab пользователя.
Кроме общей таблицы crontab, каждый пользователь имеет свою. Свою личную таблицу можно редактировать командой

Таблицу другого пользователя, например, ‘root’-а, можно редактировать командой

В первоначальном вопросе правильнее, я думаю, было бы использовать именно этот вариант.
Если в системе есть всего один пользователь, то можно отключать компьютер и через него, и через ‘root’, без разницы.

Спасибо господам 0andriy и Sergey, который привлекли мое внимание к такой возможности.

Читайте также:  Профиль firefox в линукс

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

03 23 * * * root shutdown -h now 

Переменные окружения
Популярная причина проблем с работой crontab — другое определение переменных окружения при работе демона cron , особенно переменной $PATH .
Вы можете узнать переменные окружения cron -а, вставив в crontab строчку

После того, как файл /tmp/env.output создан, эту строчку можно убрать.
Оказывается, в Ubuntu cron запускается с PATH=/usr/bin:/bin . Для корректной работы нужно определить правильный $PATH в самом файле crontab .
Обратите внимание, что значение переменных не подставляется, то есть

не сработает.
Альтернативный способ решения этой проблемы — использовать полные пути для запуска команд. Но он хуже, если вы хотите проверить свою команду в терминале или перенести в другую систему.

Если вы запускаете программы с GUI, вам также надо определить $DISPLAY:

Да, и не забывайте в конце crontab -а вставлять пустую строчку.

Вторая часть ответа была написана по мотивам вопроса о проблемах работы с crontab -ом на askubuntu.
Спасибо всем комментаторам за плодотворную дискуссию.

Источник

Таймер выключения компьютера без плагинов для Linux

123

Порой бывает необходимо заставить компьютер выключиться через определённое время, причём, чтобы это выключение произошло автоматически. Я покажу, как это просто сделать в Linux на примере ОС Ubuntu Приступим: 1#: Запускаем терминал сочетанием клавиш CTRL + ALT + T

2#: Вводим следующую команду: 1) Для выключения через определённое время:

Я не понял вашего вопроса, но постараюсь на него ответить.

Читайте также:

Обратный отсчёт до скачивания файла на Javascript

Audacity — лучший бесплатный редактор аудио дорожек для Windows, Linux, MacOS

Восстановление рабочей среды Ubuntu 12.04 +

Также есть консольное решение для пользователей WIndows:

1. Вызовите консоль «Выполнить» сочетанием клавиш Win + R

2. Вставьте в неё следующее: shutdown -s -f -t 3600

3600 — время в секундах, равное одному часу

Вот доступные ключи для параметра Shutdown:

-l : Выйти из текущего профиля
-s : Выключить компьютер
-r : Перезагрузить компьютер
-a : Отменить выход, выключение, перезагрузку
-f : Завершить работу всех приложений
-m [\\ComputerName] : Указать имя компьютера, который нужно выключить
-t xx : Таймер выключения в секундах. По-умолчанию 20 секунд
-c «message» : Причина перезагрузки. Максимум 127 символов

Пример отмены таймера выключения: shutdown -a

Источник

Выключение и запуск по расписанию Linux

Операционная система Linux позволяет планировать запуск, завершение или переход компьютера в режим сна в нужное вам время. Например, вы можете запланировать запуск компьютера утром и автоматическое выключение когда ложитесь спать.

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

Планирование включения в Linux

В Linux для завершения работы или перехода в режим сна и планирования запуска, используется утилита rtcwake. Это встроенный в ядро инструмент, поэтому она уже есть во всех дистрибутивах и устанавливать ничего не придется. Синтаксис команды такой:

Читайте также:  Nvidia linux driver install debian

$ sudo rtcwake –m режим –s время

$ sudo rtcwake –m режим –t время

После выполнения команды компьютер сразу выключится. Параметр -s указывает количество секунд до запуска компьютера. Опция -m устанавливает режим выключения. Дело в том что компьютер выключается не полностью, он переходит в сон, при котором питание подается только на несколько самых важных компонентов. Эти компоненты и определяет режим, указанный в этом параметре. Доступные режимы:

  • standby (S1) – режим с минимальным энергосбережением, компьютер очень быстро засыпает и так же быстро восстанавливается. Этот режим используется по умолчанию;
  • mem(S3) – все компоненты системы отключаются кроме памяти;
  • disk(S4) – Все содержимое памяти записывается на диск;
  • off (S5) – Аналогично вызову команды shutdown;
  • on – без отключения, используется для отладки.

А теперь давайте рассмотрим основные опции команды rtcwake Linux:

  • -a — определить какое время использовать локальное или UTC на основе файла /etc/adjtime;
  • —date — указать дату включения компьютера, доступны такие варианты: YYYY-MM-DD hh:mm:ss, YYYY-MM-DD (время будет установлено в 00:00), hh:mm:ss (дата будет установлена на сегодня), tomorrow (завтра в 00:00);
  • -l, —local — использовать локальное время, а не UTC;
  • —list-modes — вывести доступные режимы планирования включения;
  • -m, —mode — выбрать режим планирования;
  • -n, —dry-run — тестовый запуск;
  • -t — время следующего запуска в формате Unix, в секундах, прошедших с 01-01-1970;
  • -u, —utc — использовать UTC время вместо локального;
  • -v — максимально подробный вывод.

Например, следующая команда переводит компьютер в режим сна и планирует включение через 3 минуты:

Время запуска можно задавать не только в секундах от текущего момента, но и в формате полной даты и времени. Это делается с помощью опции -t, но эта опция принимает время в формате UNIX, поэтому сначала нужно преобразовать наше, обычное время, в этот формат с помощью date.

Например, давайте включим компьютер завтра в 13.00, допустим сегодня 10 сентября 2016. Сначала преобразуем данные:

Выключаем компьютер и планируем запуск по расписанию:

rtcwake -m mem -t 1473541200

Чтобы запланировать выключение Linux по расписанию или переход в режим сна будем использовать cron. Просто запланируйте выполнение команды rtcwake через crontab в нужное время для выключения компьютера и планирования последующего включения. Например, выполняем выключение компьютера Linux вечером и выполнить запуск по расписанию linux с утра:

0 21 * * * /usr/bin/rtcwake -m mem -s 28800

Если вам не нужно включать компьютер, а только выключить, можете вместо предыдущей команды использовать shutdown:

0 21 * * * /usr/bin/shutdown -h now

Вот и все. Подробнее о том, как настраивается расписание задач в cron смотрите здесь.

Выводы

Теперь вы знаете как запланировать запуск, выключение или переход в режим сна в Linux. Это не сложно и в некоторых ситуациях может очень помочь. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector