我基本上想让我的电脑在指定的时间睡眠并唤醒永远。经过研究,我确实发现了这一点,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
。