- Немного основ основ
- А теперь практика
- Ссылки
- Отключить компьютер в заданное время
- 2 ответа 2
- Объяснение подробнее.
- Таймер выключения компьютера без плагинов для Linux
- Читайте также:
- Обратный отсчёт до скачивания файла на Javascript
- Audacity — лучший бесплатный редактор аудио дорожек для Windows, Linux, MacOS
- Восстановление рабочей среды Ubuntu 12.04 +
- Выключение и запуск по расписанию Linux
- Планирование включения в Linux
- Выводы
Немного основ основ
В 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 рекомендую эти сайты:
Отключить компьютер в заданное время
Я хочу, чтоб моя 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, который привлекли мое внимание к такой возможности.
Обратите внимание, что в таблице конкретного пользователя формат задачи немного другой, там не нужно указывать пользователя. Вместо
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
Порой бывает необходимо заставить компьютер выключиться через определённое время, причём, чтобы это выключение произошло автоматически. Я покажу, как это просто сделать в 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. Это встроенный в ядро инструмент, поэтому она уже есть во всех дистрибутивах и устанавливать ничего не придется. Синтаксис команды такой:
$ 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.