Linux/Mac 定时关机、重启、睡眠(对 shutdown、halt、poweroff、reboot、init 等命令详细讲解)

203 阅读2分钟

一、简介

二、常用指令

  • 虽然它们各自有一定的场景,但根据个人需求,一般使用 shutdown 来进行设置定制关机、睡眠够用了:

    $ shutdown[选项][时间][警告信息]
    $ shutdown [-t seconds] [-rkhncfF] time [message]
    
    选项选项说明
    -t seconds设定在几秒钟之后进行关机程序。
    -r代表 reboot 重启,在指定时间重启计算机。
    -s代表 sleep 睡眠,在指定时间计算机进入睡眠。
    -h代表 halt 关机,在指定时间关闭计算机。
    -p关闭操作系统,并调用 poweroff 关闭电源。
    -k向系统中的登录者发送警告信息,并不真正执行关机操作。
    -c取消目前正在执行的关机程序。这个选项没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位系统登录者。
    -n不采用正常程序来关机用强迫的方式杀掉所有执行中的程序后自行关机。
    -f关机时不做 fcsk 动作(检查 Linux 档系统)。
    -F关机时强迫进行 fsck 动作。
    time设定关机的时间。
    message传送给所有使用者的警告讯息。
    • 其中 time 选项分为 4 种形式:

      • now:马上执行命令。

      • +分钟数:在当前时间基础上往后推迟指定分钟数后执行命令。

      • hh:mm:在今天的几时几分执行命令。

      • yymmddhhmm:在指定年月日时分执行命令。

三、使用案例(示例)

  • 下面所有指令都加了 sudo 超级权限,方便使用

  • 立即关机

    $ sudo shutdown -h now
    
    # 上面选项说明种 -h 其实就是 halt 的意思,所以也可以直接执行 halt 命令
    # 立即关机,跟上面一个效果,当然 halt 也有自己的一些参数
    $ sudo halt
    
  • 立即睡眠

    $ sudo shutdown -s now
    
  • 立即重启

    $ sudo shutdown -r now
    
    # 上面选项说明种 -r 其实就是 reboot 的意思,所以也可以直接执行 reboot 命令
    # 立即重启,跟上面一个效果,当然 reboot 也有自己的一些参数
    $ sudo reboot
    
  • 10分钟 后关机(其他指令也一样)

    $ sudo shutdown -h +10
    
  • 今天下午18点30分 关机,需要配置 24 小时制(其他指令也一样)

    $ sudo shutdown -h 18:30
    
  • 指定 年月日时分(yymmddhhmm) 关机,需要配置 24 小时制,年份 2024 只需要 24(其他指令也一样)

    # 在 2024-02-10 18:30:00 进行关机
    $ sudo shutdown -h 2402101830
    

四、关闭启用 shutdown 进程,取消任务

  • 设置一个睡眠任务

    $ sudo shutdown -s +10
    
  • 查看启用的 shutdown 进程

    $ ps -A | grep shutdown
    
    92335 ??         0:00.00 shutdown -s +10
    95770 ttys007    0:00.00 grep shutdown
    
  • 结束指定 PID 进程,清除后则不会执行配置好的指令

    # 一个一个手动关闭
    $ sudo kill -9 92335
    $ sudo kill -9 95770
    
    # 一次性全部关闭
    $ sudo killall -9 shutdown