游乐游手机版
首页/系统平台/文章详情

Ubuntu定时关机与自动唤醒计划设置方法

时间:2026-08-17 15:38
如果你想在 Ubuntu 中实现每天 23:00 自动关机,需要通过 sudo crontab -e 编辑 root 用户的 crontab,并添加 0 23 * * * sbin shutdown -h now。这里必须使用命令的完整路径,同时要以 root 权限执行;如果使用普通用户的 cro

如果你想在 Ubuntu 中实现每天 23:00 自动关机,需要通过 sudo crontab -e 编辑 root 用户的 crontab,并添加 0 23 * * * /sbin/shutdown -h now。这里必须使用命令的完整路径,同时要以 root 权限执行;如果使用普通用户的 crontab,通常会因为权限不足而静默失败,导致定时关机不生效。

Ubuntu如何设置定时关机及唤醒计划

定时关机要用 cron,而不是靠 shutdown -c 取消的那种预约

如果只是临时执行 shutdown +10shutdown 23:00 来安排一次关机,处理起来比较简单,直接运行 shutdown -c 就能取消。但如果你把自动关机任务写进 cron,机制就完全不同了。因为这并不是系统中保留了一个“待执行的关机计划”,而是由 cron 在指定时间触发一次 /sbin/shutdown -h now,命令执行完即结束,整个流程并不存在可被撤销的“预约状态”。

所以关键结论很明确:如果你想让 Ubuntu 每天 23:00 定时关机,必须使用 sudo crontab -e 编辑 root 的 crontab,并写入:

0 23 * * * /sbin/shutdown -h now
  • 必须写成 /sbin/shutdown 的完整路径,因为 cron 默认不会读取用户的 $PATH 环境变量
  • 不能使用普通用户 crontab(crontab -e),否则由于权限不足,定时关机会失败,而且通常没有明显报错
  • 如果要修改执行时间或停用任务,只能再次进入 sudo crontab -e,删除或注释这一行配置

rtcwake 才是真正能实现“定时唤醒”的命令

Linux 内核支持通过 RTC(实时时钟)进行唤醒,但这个能力通常只适用于休眠状态(suspend),并不支持系统彻底关机(poweroff)之后再自动唤醒。换句话说,你不能指望电脑在完全断电后自己开机,但可以让它先进入休眠,再在设定时间自动恢复运行。

比较典型的用法,是先让系统休眠,再设置唤醒时间:

sudo rtcwake -m mem -s 300
  • -m mem 表示进入内存休眠(S3),唤醒速度快、功耗较低;-m disk 表示休眠到硬盘(hibernate),更省电,但恢复速度更慢
  • -s 300 表示 300 秒后,也就是 5 分钟后自动唤醒;如果需要指定具体时间,也可以使用 -t $(date +%s -d "tomorrow 06:00")
  • 唤醒之后系统会继续之前的运行状态,这不是重新开机,因此原有服务和进程都会保留
  • 部分较老的 BIOS/UEFI 或某些笔记本电脑可能不支持 RTC 自动唤醒,需要在 BIOS 中启用 “RTC Alarm” 或 “Power On by RTC” 之类的选项

定时关机和定时唤醒需要配合使用,不能只依赖 cron

仅使用 cron 可以实现定时关机,但无法完成自动唤醒;而单独使用 rtcwake 则只能实现定时唤醒或休眠,不能替代关机调度。因此,Ubuntu 想实现接近“定时关机 + 定时开机”的效果,必须把两者结合起来使用,而且执行顺序不能搞错。

一种常见且稳定的做法是:在目标时间前几分钟通过 cron 执行 rtcwake,提前设置第二天的唤醒时间,然后立刻让系统进入休眠:

55 23 * * * /usr/bin/sudo /usr/sbin/rtcwake -m mem -t $(date -d "tomorrow 06:00" +%s) -s 0
  • 这条命令的含义是:每天 23:55 自动执行,设置第二天 06:00 唤醒,并立即进入休眠状态(-s 0
  • 需要注意的是,这个命令本身并不是关机,而是休眠;如果你希望“23:00 关机,06:00 自动开机”,大多数 Ubuntu 设备并没有通用软件方案,通常需要硬件支持,例如带 WoL(网络唤醒)的主板和网络环境
  • 如果目标是“定时关机后自动开机”,是否可行主要取决于主板固件功能,而不是 Ubuntu 本身的软件设置
  • 在写入 cron 之前,务必先手动测试一次 rtcwake 命令,确认机器能够正常休眠并按时唤醒,再加入定时任务

图形界面设置看起来方便,其实限制反而最多

Ubuntu 图形界面中的“电源 > 自动关机”相关选项,本质上依赖的是 systemd-logind 的 idle timeout 机制,并不是真正意义上的定时关机,而是“系统空闲 X 分钟后执行关机”。它无法按照具体时刻运行,也不能设置自动唤醒时间。

  • 它只对当前登录的会话有效,切换用户或无人登录时可能不会生效
  • 它无法与 rtcwake 配合使用,也不能替代 cron 实现精确的时间调度
  • 更适合临时需求,比如设定 30 分钟无操作后自动关机,而不适合每天固定时间执行的策略
  • 如果你看到“已启用自动关机”却没有实际动作,通常是因为系统检测到仍有活跃会话,或者后台服务正在占用资源,因此不会强制关机

想要在 Ubuntu 中稳定实现定时关机与定时唤醒,核心其实只有两步:用 sudo crontab 控制关机或休眠的触发时机,用 rtcwake 设置自动唤醒的具体时间。这个过程中没有隐藏机制,每一个环节都需要手动验证是否生效,尤其是 BIOS 设置以及 Linux 内核是否正确识别 RTC 设备,这两处往往才是最容易出问题的关键点。

来源:https://www.php.cn/faq/3004606.html
上一篇Linux如何查看文件描述符占用数量与使用情况 下一篇Mac访达侧边栏个人收藏不见了怎么恢复设置
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。