必须用绝对路径/sbin/shutdown,编辑root crontab;rtcwake需硬件支持并开启BIOS唤醒选项;关机+唤醒需分三步cron配合,图形工具仅支持简单关机。

用 cron 设置每天固定时间关机,但别漏掉 /sbin/shutdown 的全路径
Ubuntu 默认不认你 shell 里敲的 shutdown,cron 执行时 PATH 很窄,直接写 shutdown -h now 会失败,报 command not found。
- 必须用绝对路径:
/sbin/shutdown -h now或/sbin/shutdown -h 23:00 - 编辑 root 的 crontab:运行
sudo crontab -e,不是普通用户级的crontab -e - 格式示例(每天 23:00 关机):
0 23 * * * /sbin/shutdown -h now - 加个提醒消息?可以:
0 23 * * * /sbin/shutdown -h now "系统将在23:00关机,请保存工作"
注意:shutdown -c 对 cron 任务无效——它只取消由 shutdown 命令自身发起的倒计时,而 cron 是直接调用关机,没“倒计时进程”可取消。要停用,只能删或注释 cron 行。
用 rtcwake 实现睡眠后自动唤醒,得确认硬件支持且 BIOS 已启用 RTC Wake
rtcwake 不是“定时开机”,而是让系统先休眠(suspend),再靠主板 RTC 芯片在指定时间拉起电源。这依赖硬件能力,不是所有笔记本都行。
- 先测试是否支持:
sudo rtcwake -m mem -s 60—— 若 60 秒后自动唤醒,说明基础可用 - 常见唤醒模式:
-m mem(内存休眠)、-m disk(hibernate)、-m no(仅设置唤醒时间,不立即休眠) - 设今晚 23:55 唤醒:
sudo rtcwake -m no -l -t $(date -d "23:55" +%s) -
-l表示使用本地时间(非 UTC),-t后跟秒级 Unix 时间戳,别手算,用date生成
BIOS 中必须开启 “Wake on RTC”、“Resume by Alarm” 或类似选项,否则 rtcwake 会静默失败,系统睡下去就再也叫不醒了。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
关机 + 唤醒组合计划,靠两个 cron 任务+rtcwake 配合,不能只靠一个工具
想实现“23:50 睡眠 → 23:55 唤醒 → 00:10 关机”这种节奏,得拆成三步走,没有单命令能覆盖全过程。
- 第一步(睡眠):用
cron在 23:50 执行systemctl suspend或sudo rtcwake -m mem -s 300(休眠 5 分钟) - 第二步(唤醒):另起一行
cron,在 23:54 运行sudo rtcwake -m no -l -t $(date -d "23:55" +%s) - 第三步(关机):再加一行
cron,在 00:10 执行/sbin/shutdown -h now - 所有涉及
sudo的命令,在 cron 里必须用 root 权限,所以统一走sudo crontab -e
顺序和时间留白很重要:唤醒命令必须在系统真正进入 suspend 状态之后、且早于 RTC 触发时刻发出;否则唤醒失效。建议两次 cron 间隔至少预留 60 秒缓冲。
GUI 工具如 GShutdown 或系统电源设置,只管关机,不管唤醒
Ubuntu 桌面自带的“电源设置”里那个“自动关机”,底层就是写了个简单 cron 任务,只支持单一关机动作,不支持休眠、唤醒、延时组合。
-
gshutdown安装后也只能设关机/重启/注销,无法调用rtcwake或控制 suspend 流程 - 图形工具本质是封装了
shutdown命令,连全路径都可能没处理好,遇到权限问题常静默失败 - 如果你真需要点击操作,不如写好脚本,再用 GNOME 的“启动应用程序”把它注册为开机自启,然后点图标触发
复杂计划表最终绕不开终端和 cron —— 图形界面省的是输入,不是逻辑。时间精度、执行上下文、错误反馈,全靠命令行才可控。

















