Немного основ основ
В 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.
и сохраните файл под именем /etc/sudoers. Хотя можете и просто открыть от суперпользователя этот файл в любом текстовом редакторе. Но в этом случае не проверяется синтаксис заполнения файла, поэтому осторожнее.
Введите
sudo -K
чтобы забыть введенный ранее пароль sudo (они запоминаются на некоторое время и без этого эксперимент будет не чистым) и попробуйте ввести
sudo shutdown -r now
и убедитесь, что ввода пароля и правда не потребовалось.
Теперь можно создать, например, на рабочем столе ярлыки (в XFCE это клик правой кнопкой мыши -«создать значок запуска» — Имя, комментарий любые, выбрать какой-нибудь подходящий значок из предложенных, а команда для выключения
sudo shutdown -h +x
где х — время в минутах, которое вам нужно. Можно создать не один ярлык и для разных времен.
А можно, как я, добавить пункты в меню XFCE. Правой кнопкой по меню, «свойства» — «изменить меню» и тут уже делаете так, как хотите. Мое меню выглядит так:
Ссылки
Ну и тразицонно интересующимся более подробно sudo рекомендую эти сайты:
Таймер выключения линукс минт
Завершение работы компьютера с ОС Linux по таймеру
Как всем давно известно, компьютер, работающий под управлением Linux, может работать круглосуточно годами. Но большинство пользователей предпочитают выключать свой компьютер или ноутбук после завершения работы или после того, как будет выполнена автоматическая работа, которая не требует вмешательства человека. Для достижения данной цели можно воспользоваться командой shutdown .
Внимание! Команда shutdown может быть выполнена только от имени суперпользователя (root). Чтобы выполнять команды от имени суперпользователя, нужно перед выполнением команды написать sudo . Также можно воспользоваться командой su и после этого вводить команды в терминал без написания sudo .
Shutdown — консольная команда Linux, служащая для для выключения или перезагрузки машины.
Из основных параметров (options) следует отметить два:
- -r — перезагрузить систему;
- -h — полная остановка системы (с таким параметром компьютер будет выключен).
Параметром TIME можно задать время, когда будет выполнена команда. Указание этого параметра необязательно — если вы не укажите время, то команда выполнится немедленно. Можно указать время, через которое выполнится команда: +20 (через 20 минут); или явно указать время, когда следует выполнить команду: 15:20 (в 15 часов 20 минут).
Например, чтобы выключить компьютер через 20 минут, следует выполнить:
Для того, чтобы выключить в 15:20:
Для перезагрузки системы сейчас:
Хотя перезагрузиться проще так:
У вас недостаточно прав для того чтобы тут гадить.
Выключение и запуск по расписанию Linux
Операционная система Linux позволяет планировать запуск, завершение или переход компьютера в режим сна в нужное вам время. Например, вы можете запланировать запуск компьютера утром и автоматическое выключение когда ложитесь спать.
Иногда это очень даже полезно, вы экономите время, в место того чтобы ждать пока загрузится операционная система, можно сразу садится и работать, и это просто удобно. Можно запланировать включение компьютера по расписанию, даже после завершения работы скрипта.
Планирование включения в Linux
В Linux для завершения работы или перехода в режим сна и планирования запуска, используется утилита rtcwake. Это встроенный в ядро инструмент, поэтому она уже есть во всех дистрибутивах и устанавливать ничего не придется. Синтаксис команды такой:
$ 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.