如何在工作时间内禁用自动挂起功能并在之后自动重新启用它?

如何在工作时间内禁用自动挂起功能并在之后自动重新启用它?

我想在工作时间(周一至周五上午 9 点到下午 6 点)自动禁用自动挂起功能,并在下午 6 点之后重新启用它。

这是否需要 cronjob?您能举个例子吗?

答案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 方法更容易设置,因为 crongsettings默认不会执行命令(我认为这是一种方便的方法)。

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下午 6 点后可暂停的内容:

[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

编辑:由于 .service 文件被遗漏了,因此添加了启用它们的步骤。

相关内容