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

Linux中如何设置定时关机命令与指定关机时间

时间:2026-08-18 07:28
使用 shutdown -h 22:30 可以在当天 22:30 执行一次性定时关机,但前提是拥有 root 或 sudo 权限;该命令仅单次生效,不会持久保存,也不会跨系统重启保留。如设置错误,必须使用 sudo shutdown -c 取消,Ctrl+C 无法撤销。可以直接通过 shutdown

使用 shutdown -h 22:30 可以在当天 22:30 执行一次性定时关机,但前提是拥有 root 或 sudo 权限;该命令仅单次生效,不会持久保存,也不会跨系统重启保留。如设置错误,必须使用 sudo shutdown -c 取消,Ctrl+C 无法撤销。

如何在Linux中设置具体的定时关机命令

可以直接通过 shutdown -h 22:30 在 Linux 中设置指定时间关机,但必须使用 root 身份或具备 sudo 权限,而且该命令只执行一次,不会长期生效,也不会在重启后继续保留。

shutdown 指定绝对时间关机(如 22:30)

这是最直接、最常见的 Linux 定时关机方式,适合临时安排某一天的固定时刻关机,例如今晚工作结束后自动关机。

  • sudo shutdown -h 22:30:表示当天 22:30 自动关机;如果当前时间已经超过 22:30,通常会顺延到次日同一时间执行
  • 普通用户直接执行时通常会报错:Failed to set reboot delay: Permission denied,因此必须配合 sudo 或切换为 root 用户
  • 命令提交后终端不会被占用,而是立即返回提示信息,之后关机任务由 init 系统接管,不受终端关闭或会话退出影响
  • 如果定时关机设置错误,只能通过 sudo shutdown -c 取消;Ctrl+C 不会生效,因为任务已经交给系统管理
  • 不要写成 shutdown -h 22:30:00 —— 秒数格式通常不被支持,部分 Linux 发行版会忽略秒字段,甚至直接提示语法错误

cron 实现每天固定时间关机(如每天 2:00)

如果你的需求是“每天凌晨 2 点自动关机”,那么单独使用 shutdown 命令并不能实现周期性任务,必须借助 cron 来定时触发。

  • 先编辑 root 用户的 crontab:sudo crontab -e,因为普通用户的 crontab 通常没有权限调用 /sbin/shutdown
  • 添加任务行:0 2 * * * /sbin/shutdown -h +0 —— 注意这里必须写绝对路径 /sbin/shutdown,不能只写 shutdown
  • 不建议使用 now/sbin/shutdown -h now 在 cron 环境下可能因 PATH 不完整而执行异常;相比之下,+0 更稳妥
  • 为了便于排查问题,建议加上日志重定向:0 2 * * * /sbin/shutdown -h +0 >> /var/log/shutdown.log 2>&1
  • 检查任务是否配置成功:可用 sudo crontab -l 查看计划内容,再通过 sudo grep CRON /var/log/syslog 确认执行记录

at 安排未来某天单次关机(如明天 10:15)

当你想在“明天上午 10:15”这样的未来具体时间执行一次关机,又不希望它每天重复运行时,at 往往比 cron 更适合,使用起来也更轻量。

  • 先确认 atd 服务是否正在运行:sudo systemctl is-active atd,如果返回 inactive,则需要执行 sudo systemctl enable --now atd
  • 提交任务命令:echo "/sbin/shutdown -h now" | at 10:15 tomorrow —— 注意写法不是 at tomorrow 10:15,参数顺序不能写错
  • 可使用 atq 查看当前任务编号,使用 atrm 3 删除编号为 3 的任务
  • ⚠️ 一个关键限制是:所有 at 任务在系统重启后都会被自动清空,因此不具备持久化能力
  • 尽量避免使用模糊时间语法:at now + 30 minutes 在部分发行版中(例如较旧版本的 CentOS)兼容性较差,优先选择明确的时间点更安全

systemd timer 不是必要选择,除非你已有定制化需求

对于普通的 Linux 自动关机场景来说,systemd timer 往往显得过于复杂。它更适合需要任务状态跟踪、依赖其他 unit,或者希望统一接入 journal 日志审计的高级使用场景。

  • 启用时通常需要编写两个文件:.service(定义关机动作)和 .timer(定义触发规则),维护成本明显高于一条简单的 cron 任务
  • 它的优势主要体现在:可以通过 systemctl status my-shutdown.timer 查看状态,支持 OnCalendar=Mon,Wed,Thu 02:00 这类更复杂的周期配置,并且在系统重启后仍然有效
  • 如果你的需求只是“每天凌晨 2 点自动关机”,那直接上 systemd timer 就有些大材小用了——虽然能实现,但并不是最简洁的方案

很多人在配置 Linux 定时关机时最容易忽略的,其实就是权限和路径这两个关键点:无论你使用的是 cronat 还是其他调度方式,最终真正执行的都是 /sbin/shutdown;而这个可执行文件默认通常只存在于 root 用户的 PATH 中。普通用户即使把任务写对了,如果没有足够权限,结果仍然无法正常执行。还需要明确一点:shutdown 命令本身并不具备“自动定时运行”的能力,它本质上只是一个关机执行工具。真正实现自动关机的,是外层的调度机制,例如 cronatsystemd,而不是 shutdown 自带的功能。

来源:https://www.php.cn/faq/2987970.html
上一篇Win11蓝屏代码0x0000008e怎么解决 下一篇Kubernetes中如何查看和配置kubeconfig文件
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

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

同类最新

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

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