命令简介

  • shutdown 指令可以关闭所有程序,并依用户的需要,进行重启或关机操作。 :::tips 使用 shutdown 命令时,在系统关机前,可以通知所有登录者系统将要关闭。此时 login 指令会被冻结,新用户将不能再登录,这是推荐使用的安全关机方式。关机之前,所有进程都会受到 shutdown 指令所发送的关闭进程信号,然后向 init 程序发送信号,要求它改变运行等级(runlevel)。 :::

    Linux 系统有 7 个运行级别:

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动;

  • 运行级别1:单用户工作状态,root 权限,用于系统维护,禁止远程登录;
  • 运行级别2:多用户状态(没有 NFS);
  • 运行级别3:完全的多用户状态(有 NFS),登录后进入控制台命令行模式;
  • 运行级别4:系统未使用,保留;
  • 运行级别5:X11 控制台,登录后进入图形 GUI 模式;
  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动。

    命令格式

    1. shutdown [选项] [参数]

    选项说明

  • -c: cancel,其他用户可以取消目前正在执行的关机程序,或者Control-C终止shutdown程序

  • -k: 仅仅向每个登录用户发出警告信息,并不真正关机
  • -f: 重新启动时不执行fsck文件系统检查命令;
  • -F: 重新启动时执行fsck文件系统检查命令;
  • -h: 关机(halt)或关闭电源(power off)
  • -H: 关机(halt);
  • -P: 关机,等价于 poweroff 命令
  • -n: 不调用 init 程序进行关机,而由 shutdown 自己进行
  • -r: 重启。等价于 reboot 命令
  • -t: <秒数> 送出警告信息和删除信息之间要延迟多少秒
  • --help: 显示帮助信息
  • --version: 显示版本

    常用示例

    立刻关机,其中 now 相当于时间为 0 的状态。

    1. shutdown -H now
    2. # 或
    3. halt

    系统在今天的 20:25 分关机。

    1. shutdown -H 20:25

    系统立刻重新启动。

    1. shutdown -r now
    2. # 或
    3. reboot

    发送后面的警告信息,再过 30 分钟系统会自动重启。

    1. shutdown -r +30 'The system will reboot'

    仅发出警告,系统并不会关机。

    1. shutdown -k now 'This is just a warning message'

    立即关机并切断电源。

    1. shutdown -P now
    2. # 或
    3. poweroff

    恶作剧,仅发出警告,什么都不会发生。

    1. shutdown +10 -k '10分钟后关机'

    常见问题

    shutdown -h、shutdown -H和shutdown -P的区别?

    :::tips shutdown -H是关机操作,停止系统运行,但并未关闭电源,shutdown -P是关闭电源操作。shutdown -h则根据系统的默认设置来选择是否关闭电源 。关闭电源会送出 ACPI 指令通知PSU(Power Supply Unit)电源。 :::

    shutdown 默认操作进入单用户维护模式。

    1. # 十分钟后进入单用户维护模式
    2. shutdown +10

    推荐阅读

    shutdown(8) - Linux manual page
    Linux 關機指令(shutdown、halt 與 poweroff)教學與範例 - G. T. Wang
    Linux 命令(5)—— shutdown 命令_恋喵大鲤鱼的博客-CSDN博客_linux shutdown 命令