我想使用at
命令安排工作,但那时我的笔记本电脑可能已经进入睡眠状态。那么问题是该命令会被执行吗?
如果是,怎么办?我的意思是我的计算机会唤醒并且命令会运行还是其他什么?
如果没有,为什么不呢?
答案1
“睡眠”被定义为超低功耗:所有子系统都获得关掉并且消耗极少的功率,但可以很快被唤醒外部的事件:盖子打开、电源按钮、按键、WOL 数据包、BIOS。
所以不,你的命令不会在“睡眠”模式下运行, 但可以在低功耗模式下运行:在这种模式下,如果不再需要,您的磁盘将关闭,屏幕、键盘也是如此,但 WiFi、LAN、内存、CPU……只是继续运转。
或者,您可以:
- 由一台从不休眠的服务器发送 WOL 数据包,并且会“唤醒”(甚至从休眠状态或完全关闭状态)其他机器被允许睡觉。(就像守夜人会唤醒整个皇家卫队)
- 如果您的 BIOS 支持此功能:让 BIOS 在特定时间点唤醒您的计算机。 (外部唤醒的另一个例子)
;-)
答案2
我不认为你可以这样做at
,但你可以使用实时唤醒反而。
也可以看看https://www.howtogeek.com/121241/how-to-make-your-linux-pc-wake-from-sleep-automatically/, 尤其:
将系统从睡眠状态唤醒后,使用
&&
运算符运行特定命令。rtcwake
例如,以下命令将计算机挂起至 RAM,两分钟后将其唤醒,然后启动 Firefox:rtcwake -m mem -s 120 && firefox
和
例如,要让您的计算机在明天早上 6:30 唤醒但不立即挂起(假设您的硬件时钟设置为本地时间),请运行以下命令:
sudo rtcwake -m no -l -t $(date +%s -d ‘tomorrow 06:30’)
但请注意,与使用不同at
,您必须担心是否已经是午夜:您显然需要tomorrow 06:30
在午夜之前并且只需06:30
午夜之后。这个答案有一个解决方案。