有没有办法让我的 Ubuntu PC 始终在特定时间睡眠和唤醒?

有没有办法让我的 Ubuntu PC 始终在特定时间睡眠和唤醒?

我基本上想让我的电脑在指定的时间睡眠并唤醒永远。经过研究,我确实发现了这一点,rtcwake但据我所知,这基本上是一次性使用,我必须每天手动操作。我只是在寻找可以自动运行的东西,我只是不知道如何使用 bash 强制执行 rtcwake 命令,如果这有任何意义的话。

除了想要自动睡眠之外,我还遇到了使用“磁盘”选项时 rtcwake 不起作用的问题,因为它会引发错误:

 rtcwake: unrecognised suspend state 'disk'

答案1

要暂停/休眠,您可以使用

systemctl suspend
systemctl hibernate

输入/etc/crontab您希望发生此操作的时间。

1 0 * * * root /usr/bin/systemctl hibernate

要唤醒系统,您可以使用rtcwake。例如,在下午 4 点/16:00 唤醒系统:

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

您也可以将其/etc/crontab用作@reboot触发器。

@reboot root /usr/bin/rtcwake -m no -l -t "$(/usr/bin/date -d 'today 16:00:00' '+\%s')"

你可以将两者结合起来,这样就可以了:

0 23 * * *  root /usr/bin/rtcwake -m disk -s 60*60*12

因此在 23:00 时它将暂停并在 60 * 60 * 12 秒(12 小时)后唤醒。

请注意,可能存在冲突:如果系统正在忙于执行某项操作,它将停止该操作并继续暂停。有些工具在有活动时不会暂停,例如自动暂停 sudo apt install autosuspend

相关内容