Автоматическое выключение компьютера линукс

Linux выключение компьютера по расписанию

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

2 ответа 2

Зачем трогать крон в системе с божественным systemd? 🙂 В systemd одним из способов выключения компьютера является включение службы systemd-poweroff , которая запускает команду /bin/systemctl —force poweroff , которая понятно что делает. Сделаем таймер для запуска этой службы по расписанию, создав файл /etc/systemd/system/systemd-poweroff.timer (под рутом, разумеется): (Формат даты ДеньНедели Год-Месяц-День Часы:Минуты:Секунды , день недели писать необязательно, звёздочка означает любое значение.)

Запустим его (таймер, а не выключение): И добавим в автозагрузку, чтобы каждый раз вручную не запускать: Теперь этот таймер будет каждый день в 23:03 запускать ту службу, которая написана в имени файла — systemd-poweroff — и тем самым выключать компьютер. С помощью команды sudo systemctl status systemd-poweroff.timer можно посмотреть информацию о таймере: точное время следующего запуска, оставшееся время и так далее: Если вы отредактировали файл (например, изменили время), нужно выполнить sudo systemctl daemon-reload для применения изменений. Подробнее про таймеры можно почитать на арчевики. На помощь нам придет юниксный демон по имени cron .
Для того, чтобы поставить задачу в расписание, мы добавим ее в файл /etc/crontab .
Открываем терминал — Ctrl Alt T .
Файл можно редактировать такой командой:

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

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

(Обновлено) В самом этом файле /etc/crontab объясняется формат таблицы задач: Первые два поля — минута и час запуска задачи,
3-е поле (dom) — день месяца (Day of Month),
затем месяц,
5-е поле (dow) — день недели,
затем пользователь, от чьего имени будет запускаться команда,
и, собственно, команда. Время запуска
Все условия (времени запуска) проверяются по «логическому И», кроме условий «день недели» и «день месяца» — указанные совместно, они обрабатываются по «логическому ИЛИ», то есть «по любому из дней», что отражено в документации (Ubuntu, Debian, FreeBSD). (См. Википедия, man 5 crontab ). Если вы хотите проверять их по «логическому И», делайте это в самой команде.

Например, перезагрузка в пятницу, 13-го: Crontab пользователя.
Кроме общей таблицы crontab, каждый пользователь имеет свою. Свою личную таблицу можно редактировать командой Таблицу другого пользователя, например, ‘root’-а, можно редактировать командой В первоначальном вопросе правильнее, я думаю, было бы использовать именно этот вариант.
Если в системе есть всего один пользователь, то можно отключать компьютер и через него, и через ‘root’, без разницы. Спасибо господам 0andriy и Sergey, который привлекли мое внимание к такой возможности. Обратите внимание, что в таблице конкретного пользователя формат задачи немного другой, там не нужно указывать пользователя. Вместо Переменные окружения
Популярная причина проблем с работой crontab — другое определение переменных окружения при работе демона cron , особенно переменной $PATH .
Вы можете узнать переменные окружения cron -а, вставив в crontab строчку

Читайте также:  Узнать видеокарту компьютера linux

После того, как файл /tmp/env.output создан, эту строчку можно убрать.
Оказывается, в Ubuntu cron запускается с PATH=/usr/bin:/bin . Для корректной работы нужно определить правильный $PATH в самом файле crontab .
Обратите внимание, что значение переменных не подставляется, то есть не сработает.
Альтернативный способ решения этой проблемы — использовать полные пути для запуска команд. Но он хуже, если вы хотите проверить свою команду в терминале или перенести в другую систему. Если вы запускаете программы с GUI, вам также надо определить $DISPLAY: Да, и не забывайте в конце crontab -а вставлять пустую строчку. Вторая часть ответа была написана по мотивам вопроса о проблемах работы с crontab -ом на askubuntu.
Спасибо всем комментаторам за плодотворную дискуссию. Источник

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

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

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

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

  • 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

Читайте также:  Vlc linux log file

Чтобы запланировать выключение 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. Это не сложно и в некоторых ситуациях может очень помочь. Если у вас остались вопросы, спрашивайте в комментариях!

Warl0ck’s Blog

Про GNU/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, можно зайти и пересоздать пользователя)

Читайте также:  Kali linux открыть флешку

В эмуляторе терминала введите команду
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:

Для перезагрузки системы сейчас:

Хотя перезагрузиться проще так:

У вас недостаточно прав для того чтобы тут гадить.

Источник

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