Как отключить автоматическую приостановку в рабочее время и включить ее автоматически после этого?

Я хочу автоматически отключить автоматическую приостановку в рабочее время (пн - пт с 9:00 до 18:00) и снова включить ее после 18:00.

Требуется ли для этого cronjob? можете ли вы привести пример?

0
задан 15 June 2021 в 02:22

1 ответ

Вы можете установить политику приостановки с помощью gsettings

# no sleep on ac
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
# sleep on ac
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'sleep'

# no sleep on ac
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
# sleep on ac
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'sleep'

Также есть варианты для пустого (выключение экрана), завершения работы, перехода в спящий режим и выхода из системы. Вы можете дополнительно изучить параметры в графической утилите, называемой 'dconf-editor' , apt install dconf-editor и перемещаясь по опциям: org> gnome> settings-daemon> plugins> power.

Вы можете вызывать команды с помощью cron или использовать для этого пользовательскую службу и таймер systemd. Я думаю, что хотя для этого требуется больше файлов, метод systemd проще настроить, поскольку cron по умолчанию не выполняет команду gsettings (что, на мой взгляд, является удобным способом сделать это).

Файлы пользователя Systemd хранятся в $ HOME / .config / systemd / user . Внутри этого каталога вы можете разместить два служебных файла (один включает спящий режим, а другой отключает его) и соответствующие им файлы таймера.

Запустите таймеры с помощью:

systemctl --user enable disable_suspend.timer
systemctl --user start disable_suspend.timer

systemctl --user enable enable_suspend.timer
systemctl --user start enable_suspend.timer

Включите службы с помощью:

systemctl --user enable disable_suspend.service

systemctl --user enable enable_suspend.service

файлов systemd:

(Если вам не нужно / не нужно включать / отключать режим ожидания для батареи, вы, конечно, можете удалить эту строку в служебные файлы.)

Содержимое enable_suspend.timer , которое включает приостановку после 18:00:

[Unit]
Description=Timer for enabling suspend

[Timer]
OnCalendar=Mon..Fri 18:00

[Install]
WantedBy=timers.target

Содержимое enable_suspend.service

[Unit]
Description=Enable Sleep

[Service]
Type=oneshot
ExecStart=gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'sleep'
ExecStart=gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'sleep'
Restart=on-failure

[Install]
WantedBy=multi-user.target

Содержимое disable_suspend.timer

[Unit]
Description=Timer for disabling suspend

[Timer]
OnCalendar=Mon..Fri 9:00

[Install]
WantedBy=timers.target

Содержимое disable_suspend.service

[Unit]
Description=Disable Sleep

[Service]
Type=oneshot
ExecStart=gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
ExecStart=gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
Restart=on-failure

[Install]
WantedBy=multi-user.target

Edit: Добавлен шаг для включения файлов .service, так как они были пропущены.

3
ответ дан 28 July 2021 в 11:28

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

Похожие вопросы: