Расписание сна и пробуждения | Ubuntu 16.04.3 LTS

Я искал решения, которые позволили бы моему компьютеру засыпать в 1:00 по восточному поясному времени и просыпаться в 18:00 по восточному поясному времени каждый день. До сих пор я был неудачным.

Я попытался использовать rtcwake и cronjobs, а также скрипт здесь:

Автоматически возобновить из режима сна / ожидания / приостановки | Форумы Ubuntu

Даже на других форумах я не мог заставить это работать.

Был бы очень признателен за помощь.

PS У меня включено шифрование диска, поэтому я не могу использовать Hybernate.

3 ответа

С терминала:

Приостановить и проснуться через 60 секунд:

sudo rtcwake -m disk -s 60

Приостанови и проснись сегодня 16.00

sudo rtcwake -m no -l -t "$(date -d 'today 16:00:00' '+%s')"

Приостановить и проснуться завтра 10.00:

sudo rtcwake -m no -l -t $(date +%s -d 'tomorrow 10:00')

Приостановить и разбудить конкретную дату и время:

sudo rtcwake -m no -l -t "$(date -d '2017-04-25 16:00:00' '+%s')"

Чтобы выключить для использования обслуживания:

sudo shutdown -P +60 "The system is going DOWN to maintenance mode in 60 minutes!"

sudo shutdown -P 22:10 "The system is going DOWN to maintenance mode at 22:10!"

Использование Autopoweroff:

Скачать Autopoweroff:

wget https://github.com/deragon/autopoweroff/releases/download/3.0.0/autopoweroff-3.0.0-1.noarch.deb

Установите Autopoweroff:

sudo dpkg -i autopoweroff-3.0.0-1.noarch.deb
sudo apt-get install -f

Сценарий, которому вы следуете, слишком сложен. Более простой метод описан здесь.

Перед полной реализацией 1:00 и 6:00, вы можете сделать простой 10-секундный тест:

sudo rtcwake -m mem -s 10 && firefox

Этот тест обеспечит работоспособность приостановки в ОЗУ. После возобновления firefox автоматически запускается.

Вместо того, чтобы возиться с UTC, rtcwake команда вызвана из cron в 1 час ночи и просыпаюсь 18000 секунд спустя Ваша запись в таблице cron будет выглядеть примерно так:

0 1 * * *  sh /usr/sbin/rtcwake -m mem -s 18000 >> /home/Me/SuspendResume.log 2>&1

Там нет необходимости sudo префикс, потому что cron работает с привилегиями sudo.

замещать Me с вашим именем пользователя. Проверьте файл SuspendResume.log для сообщений cron периодически и всякий раз, когда возникает проблема. 2>&1 опция перенаправляет сообщения об ошибках в .log файл.

Предостережения

  • RTC обозначает часы реального времени. rtcwake использует аппаратные часы вашего компьютера, которые вы можете установить в BIOS, чтобы определить, когда ваш компьютер проснется. Если вы используете старый компьютер с умирающей батареей CMOS, которая не может правильно работать, это не сработает.
  • Если режим сна, приостановка в ОЗУ или спящий режим не работают должным образом с вашей системой Linux - возможно, из-за того, что в Linux нет драйверов для их правильной работы с вашим оборудованием - это может не сработать.
  • Будьте внимательны при настройке ноутбука на автоматическое включение в определенное время. Вы не хотели бы, чтобы он просыпался, работал и перегревался или разряжался в сумке для ноутбука.

Я хотел, чтобы мой компьютер засыпал в 23:59 по местному времени каждую ночь и просыпался каждое утро в 9:00.

И я знаю, что cronjobs может помочь в этом.

Я использовал инструмент (такой как https://cron.help/#59_23_*_*_*), чтобы показать мне, что правильный синтаксис для расписания перехода в сон, которое я хочу, это <tcode id="43061"></tcode>.

А потом мне нужно было посчитать, сколько секунд должен длиться сон: 9:00 — это 9 часов + 1 минута после 23:59. (9 * 60 + 1) * 60 = 32460 секунд

Так что я побежал crontab -eдля редактирования заданий cron через vim и добавил эти 2 строки:

      # inspired by https://askubuntu.com/a/1348204/48214 and https://askubuntu.com/a/1012051/48214 and https://itectec.com/ubuntu/ubuntu-automatically-sleep-and-wake-up-at-specific-times/
59 23 * * * /usr/sbin/rtcwake -m disk -s 32460 >> /code/cron.log 2>&1

И я сохранил файл.


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

Поэтому вместо этого то, что я использую сейчас, только приостанавливает мой компьютер по расписанию, и я еще не понял, как запланировать пробуждение:

      59 23 * * * echo "$(date) Running /usr/local/bin/systemctl-suspend" >> /code/cron.log && /usr/local/bin/systemctl-suspend >> /code/cron.log 2>&1

который я получил от https://unix.stackexchange.com/a/642533/48973.

Другие вопросы по тегам