Ubuntu系统的唤醒功能可通过硬件事件、命令行指令或定时任务触发,以下是具体操作方式:
适用场景:日常使用中通过物理操作唤醒处于睡眠/休眠状态的系统。
操作方式:
适用场景:通过脚本或远程终端控制系统的唤醒操作。
操作方式:
sudo systemctl resume
若系统处于**睡眠(suspend)**状态(内存保留供电,屏幕/硬盘关闭),可使用以下命令唤醒:sudo systemctl resume
注:部分旧版本Ubuntu可能需要用
sudo pm-resume替代。
适用场景:需要系统在特定时间自动唤醒(如执行备份、下载等任务),无需人工干预。
操作方式:
使用rtcwake命令(Ubuntu默认安装),通过设置系统RTC(实时时钟)定时唤醒。
基本语法:
sudo rtcwake -m [挂起模式] -s [秒数] -t [目标时间戳]
-m:指定挂起模式(mem=挂起到内存,disk=挂起到磁盘,no=不立即挂起仅设置时间);-s:系统挂起后等待的秒数(如-s 3600表示1小时后唤醒);-t:目标时间的时间戳(可通过date +%s -d "HH:MM"生成,如date +%s -d "08:30")。示例1:1小时后唤醒:
sudo rtcwake -m mem -s 3600
系统将挂起到内存(保留RAM数据),1小时后自动唤醒。
示例2:指定时间唤醒(如08:30):
TARGET_TIME=$(date +%s -d "08:30")
CURRENT_TIME=$(date +%s)
if [ $TARGET_TIME -lt $CURRENT_TIME ]; then
TARGET_TIME=$((TARGET_TIME + 24*60*60)) # 若目标时间已过,设置为次日
fi
sudo rtcwake -m no -t $TARGET_TIME # 仅设置时间,不立即挂起
需配合脚本(如set_wake_suspend.sh)和crontab定时运行,实现“休眠→定时唤醒”的循环(参考之前对话中的定时任务配置)。
适用场景:通过网络远程触发处于睡眠状态的Ubuntu系统唤醒(需硬件和网络支持)。
操作步骤:
硬件与BIOS设置:
sudo ethtool <网卡名称>查看,输出中需包含“Supports Wake-on: g”)。Ubuntu系统配置:
ethtool工具:sudo apt install ethtool;sudo ethtool -s <网卡名称> wol g # 如<网卡名称>为enp3s0
nmcli connection show # 获取网络连接名称(如“Wired connection 1”)
nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic
nmcli connection down "Wired connection 1"
nmcli connection up "Wired connection 1"
远程唤醒操作:
在另一台设备(如手机、电脑)上,通过路由器管理界面或WOL工具(如wakeonlan命令),发送魔术包(Magic Packet)至目标Ubuntu设备的MAC地址:
wakeonlan -i <路由器IP> <Ubuntu设备MAC地址>
例如:wakeonlan -i 192.168.1.1 00:1A:2B:3C:4D:5E。
以上方法覆盖了Ubuntu系统常见的唤醒场景,可根据实际需求选择合适的方式。需注意:唤醒功能依赖硬件支持(如网卡、主板),若遇到无法唤醒的问题,建议检查BIOS设置、驱动更新或硬件兼容性。