发布于2026-08-15 阅读(0)
扫一扫,手机访问
shutdown -h 22:30可实现当天22:30单次关机,需root或sudo权限;该命令不持久、不跨重启,误设须用sudo shutdown -c取消,Ctrl+C无效。

能直接用 shutdown -h 22:30 设置具体时间关机,但必须是 root 或有 sudo 权限,且该命令只生效一次、不持久、不跨重启。
shutdown 指定绝对时间关机(如 22:30)这是最直觉的操作,适合临时安排某天某个时刻关机,比如今晚会议结束前关机。
sudo shutdown -h 22:30:当天 22:30 关机;如果已过 22:30,则默认推迟到次日同一时间Failed to set reboot delay: Permission denied,必须用 sudo 或切换到 rootsudo shutdown -c 取消;Ctrl+C 无效,因为进程已交由系统管理shutdown -h 22:30:00 —— 秒字段会被忽略,部分发行版甚至直接报错cron 实现每天固定时间关机(如每天 2:00)如果你要的是「每天凌晨 2 点自动关机」,shutdown 单次命令做不到,必须靠 cron 定期触发。
sudo crontab -e,普通用户的 crontab 无权调用 /sbin/shutdown0 2 * * * /sbin/shutdown -h +0 —— 注意必须用绝对路径 /sbin/shutdown,不能只写 shutdownnow:/sbin/shutdown -h now 在 cron 环境中可能因 PATH 缺失失败;+0 更可靠0 2 * * * /sbin/shutdown -h +0 >> /var/log/shutdown.log 2>&1sudo crontab -l 查看内容,sudo grep CRON /var/log/syslog 看执行记录at 安排未来某天单次关机(如明天 10:15)当你要在「明天上午 10:15」关机,又不想让它变成每天重复的任务,at 比 cron 更精准、更轻量。
sudo systemctl is-active atd,若为 inactive,需 sudo systemctl enable --now atdecho "/sbin/shutdown -h now" | at 10:15 tomorrow —— 注意不是 at tomorrow 10:15,顺序敏感atq 查看任务编号,atrm 3 删除编号为 3 的任务at 任务在系统重启后自动清空,不持久化at now + 30 minutes 在某些发行版(如较老的 CentOS)不支持,优先用明确时间点systemd timer 不是必要选择,除非你已有定制化需求对单纯定时关机来说,systemd timer 是过度设计。它适合需要状态追踪、依赖其他 unit、或集成 journal 日志审计的场景。
.service(定义关机动作)+ .timer(定义触发时间),维护成本明显高于一行 cronsystemctl status my-shutdown.timer 查状态、支持 OnCalendar=Mon,Wed,Thu 02:00 这类复杂周期、重启后仍有效很多人最容易忽视的,其实是权限和路径这两个细节:无论用哪种调度方式,最后真正被调用的都是 /sbin/shutdown;而这个二进制默认通常只在 root 的 PATH 里。普通用户就算把 cron 或 at 写好了,没有相应权限,结果还是一样,根本执行不起来。还有一个绕不过去的事实也得说清楚:shutdown 本身并不具备“自动”属性,它更像一个执行器。所谓自动化,始终来自调度层,比如 cron、at、systemd,而不是这个命令天生就会自动运行。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9