Команда «Не прерывать сон» при закрытии крышки

Команда «Не прерывать сон» при закрытии крышки

У меня есть привычка быстро устанавливать напоминания с помощью:

sleep $duration; notify-send $reminder_message

Но в последнее время мне пришлось переезжать и часто менять столы. Я заметил, что мой $reminder_messageначал приходить позже, чем предполагалось. Виновником, как оказалось, является то, что когда я закрываю крышку, то он приостанавливает все вместе с моей sleepкомандой.

Вот как я это узнал:

date; echo $duration; date -d "+$duration sec"; sleep "$duration"s; date

Если я закрываю крышку между указанной выше командой, то: dateи date -d "+$duration sec"не совпадают. Однако, если крышка не закрыта, то они совпадают!

Поэтому для быстрого решения проблемы я отключил функцию приостановки с закрытием крышки с помощью:

HandleLidSwitch=ignore

(следующийэтот ответ ask-ubuntu)

Теперь мои команды сна работают так, как я хотел. Но отключение режима ожидания вообще, я считаю, этослишком агрессивныйисправить иперебор!

Есть ли более простое решение? Я просто хочу, чтобы мои sleepкоманды не прерывались, когда я закрываю крышку.

решение1

Без обид, но у нас тут может быть проблема XY. Ваше впечатление, что решение вашейнастоящийпроблема в том, sleepчто может быть неправильно. sleepпроверяет, пока не пройдет указанное время, и это время останавливается, когда компьютер переходит в спящий режим.

Вместо этого рассмотрите возможность использования atкоманды для планирования выполнения определенных заданий в определенное время.

atработает так:

echo "command_to_be_run" | at +30 minutes

запланирую работу на 30 мин позже.

atочень похож на cron, но задание запускается только один раз. Он не устанавливается по умолчанию, но может быть установлен с помощью sudo apt install at.

Связанный контент