0

0

Linux如何实现定时关机?通过shutdown命令设置定时关机的具体方法

星夢妙者

星夢妙者

发布时间:2025-08-27 10:46:02

|

735人浏览过

|

来源于php中文网

原创

答案:使用shutdown命令可精确设置Linux定时关机或延时关机,支持相对时间(+M分钟)和绝对时间(HH:MM)两种模式,执行时会通知所有用户,确保安全关机。

linux如何实现定时关机?通过shutdown命令设置定时关机的具体方法

在Linux系统中,实现定时关机最直接且常用的方法是利用

shutdown
命令。这个命令提供了灵活的选项,可以让你精确地控制系统何时关闭或重启,无论是立即执行、延时数分钟,还是在特定时间点进行。

解决方案

shutdown
命令是Linux系统进行定时关机的核心工具,它的基本语法非常直观。

  • 延时关机: 如果你想让系统在未来M分钟后关机,可以使用

    +M
    的格式。 例如,要在10分钟后关机:

    sudo shutdown +10

    系统会发送一个广播消息给所有登录用户,通知他们系统将在10分钟后关机。

  • 特定时间关机: 如果你想让系统在当天某个具体时间(例如下午5点半)关机,可以使用

    HH:MM
    的格式。 例如,要在下午5点30分关机:

    sudo shutdown 17:30

    同样,系统会在关机前向用户发送通知。

  • 立即关机: 虽然不常用作“定时”,但了解立即关机也是必要的。

    sudo shutdown -h now
    # 或者
    sudo shutdown -h 0

    这会立即关闭系统。

  • 定时重启: 如果你的需求是定时重启而不是关机,只需要将

    -h
    (halt/关机)替换为
    -r
    (reboot/重启)。 例如,在10分钟后重启:

    sudo shutdown -r +10

    在下午5点30分重启:

    sudo shutdown -r 17:30
  • 取消定时关机/重启: 如果你设置了定时关机或重启,但后来改变了主意,可以使用

    -c
    选项来取消。

    sudo shutdown -c

    这个命令会撤销所有待执行的

    shutdown
    任务。

  • 附带消息: 在定时关机时,你还可以附带一条自定义消息,这条消息会广播给所有登录用户。

    sudo shutdown +15 "系统将在15分钟后进行维护性关机,请保存工作!"

    这对于多用户环境尤其有用,能有效避免不必要的混乱。

如何精确设置Linux系统在特定时间关机或延时关机? 说实话,我最初接触Linux时,也曾纠结于这么多关机命令的区别,但用久了就会发现,

shutdown
命令在精确性和安全性上,确实是首选。它不仅仅是简单地切断电源,更是一个优雅的系统退出流程。

要精确设置定时关机,我们主要围绕

shutdown
命令的两种时间格式来操作:相对时间和绝对时间。

  • 相对时间(延时关机): 使用

    +M
    的格式,这里的
    M
    代表从当前时间开始的分钟数。 比如,你正在进行一个耗时1小时的编译任务,希望任务结束后系统自动关机,就可以设置
    sudo shutdown +60
    。系统会在60分钟后尝试关机。这种方式的好处是灵活,你不需要去计算具体的时分秒,只需考虑“多少分钟后”即可。我个人倾向于在临时性的、时间不确定但有个大致预估的场景中使用它。

    # 比如,想在半小时后关机,并通知大家
    sudo shutdown +30 "服务器将在30分钟后进行例行维护,请保存数据并退出。"

    这个命令执行后,系统会启动一个计时器。在关机前的最后几分钟,系统还会多次发出警告,确保用户有足够的时间响应。

  • 绝对时间(特定时间关机): 使用

    HH:MM
    的格式,这要求你指定一个当天的小时和分钟。 例如,你计划在晚上11点半系统自动关机,就可以设置
    sudo shutdown 23:30
    。这种方式适用于需要精确到某个时间点执行关机任务的场景,比如每日凌晨的服务器维护、下班后自动关闭工作站等。

    # 比如,想在今晚10点关机
    sudo shutdown 22:00

    如果当前时间已经超过了

    HH:MM
    shutdown
    命令会报错,或者在某些系统上,它会默认安排在第二天的这个时间。所以,使用绝对时间时,最好确保你设置的时间点是在当前时间之后。这一点在使用时需要特别留意,避免出现“命令执行了,但怎么没反应”的困惑。

shutdown
命令在执行关机操作前,会给所有登录用户发送一个
wall
消息。这非常重要,尤其是在多用户或生产环境中,能有效避免因突然关机导致的数据丢失和用户抱怨。这个“善意提醒”是
shutdown
命令比
halt
poweroff
更受推崇的一个关键原因。

Shakespeare
Shakespeare

一款人工智能文案软件,能够创建几乎任何类型的文案。

下载

除了定时关机,

shutdown
命令还能实现哪些系统管理操作?
shutdown
命令远不止定时关机那么简单,它其实是一个功能强大的系统状态转换工具,能以一种“优雅”的方式管理系统的关机、重启和暂停。

  • 定时重启 (

    -r
    ): 这和定时关机类似,只是目的从关闭系统变成了重新启动系统。例如,你可能需要定期重启服务器来清理内存、应用内核更新等。

    # 计划在午夜12点重启系统
    sudo shutdown -r 00:00

    我个人倾向于在生产环境或共享服务器上优先使用

    shutdown -r
    ,因为它提供了一个更为优雅和安全的退出机制,允许所有服务和进程有时间正常关闭,而不是粗暴地中断。

  • 取消待处理的关机/重启任务 (

    -c
    ): 这是个救命稻草!想象一下,你设置了定时关机,结果突然发现有个重要的任务还没跑完,或者你敲错了时间。这时候,
    shutdown -c
    就能派上用场,它会立即取消所有已计划的
    shutdown
    操作。

    # 紧急取消之前设置的定时关机
    sudo shutdown -c

    执行这个命令后,系统会广播一条消息,通知用户之前的关机计划已被取消。这真的很实用,避免了许多不必要的麻烦。

  • 强制立即关机/重启 (

    now
    0
    ):
    虽然
    shutdown -h now
    shutdown -r now
    看起来和
    halt
    reboot
    命令效果一样,但它们之间还是有微妙区别的。
    shutdown
    命令通常会先尝试通知所有用户,并给正在运行的进程发送TERM信号,让它们有机会进行清理工作,然后才执行关机或重启。而
    halt
    reboot
    在某些情况下可能更加直接,不给进程太多“善后”的时间。所以,即便是立即关机,用
    shutdown
    也显得更“文明”一些。

    # 立即关机
    sudo shutdown -h now
    # 立即重启
    sudo shutdown -r now

    从技术角度看,

    shutdown
    通常会调用
    halt
    poweroff
    reboot
    命令来最终执行操作,但它在此之前增加了一层管理和通知机制。这使得
    shutdown
    在多用户或关键服务运行的环境中成为更安全、更负责任的选择。

如果定时关机设置错误,或者想取消,应该怎么操作? 凡事总有例外,或者说,总有那么些时候我们手滑敲错了命令,或者计划赶不上变化。取消一个已设置的定时关机或重启,是系统管理员和普通用户都应该掌握的“撤销”技能。

最直接、最有效的方法就是使用

shutdown -c
命令。

sudo shutdown -c

这个命令会立即终止所有由

shutdown
命令启动的待处理关机或重启进程。执行成功后,通常系统会广播一条消息,比如“Shutdown cancelled at [时间]”,通知所有用户关机计划已取消。

如何确认是否还有待处理的

shutdown
任务? 有时候你可能不确定之前是否设置过定时关机,或者想确认
shutdown -c
是否真的生效了。一个简单的方法是查看系统进程。
shutdown
命令在被调度后,会作为一个进程在后台运行,直到关机时间到达。 你可以尝试使用
ps
命令结合
grep
来查找:

ps -ef | grep shutdown | grep -v grep

如果这个命令返回了类似

root ... /sbin/shutdown ...
的进程信息,那就说明有一个
shutdown
任务正在等待执行。如果没有任何输出,或者只看到了
grep shutdown
本身的进程,那么就表示当前没有
shutdown
任务在排队。

当然,如果

shutdown -c
执行后,你再运行上面的
ps
命令,通常就不会再看到
shutdown
进程了。这给了你一个直观的确认。

需要注意的是,

shutdown -c
只能取消由
shutdown
命令自身启动的计划。如果你的定时关机是通过
cron
任务调用
halt
poweroff
reboot
来实现的,那么
shutdown -c
是无法取消的。那种情况下,你需要去编辑或删除对应的
cron
任务。这又是一个小小的技术细节,常常让人混淆,但理解了它们的区别,就能更准确地定位问题。所以,当涉及到定时任务时,搞清楚是
shutdown
在管理,还是
cron
在直接调用底层命令,是排查问题的关键。

总而言之,

shutdown -c
是你的“取消键”,但了解其作用范围,以及如何通过进程查看来辅助判断,能让你在实际操作中更加从容。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1349

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

703

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

776

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

573

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

545

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

297

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

381

2023.07.25

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号