shutdown 命令:系统关机
侧边栏壁纸
  • 累计撰写 146 篇文章
  • 累计收到 2 条评论

shutdown 命令:系统关机

soulio
2024-09-25 / 0 评论 / 5 阅读 / 正在检测是否收录...

一、命令简介

shutdown​ 命令用于安全地关闭或重启系统。它可以通知用户关机时间,确保所有进程正常结束,同步文件系统,并执行关机前需要执行的脚本。

shutdown 关机过程

  1. 通知用户shutdown​ 命令会通知所有登录的用户系统即将关机,并显示倒计时。
  2. 终止进程shutdown​ 会向所有进程发送终止信号(通常是 SIGTERM),请求它们正常终止。大多数进程在收到这个信号后都会开始清理并退出。
  3. 等待进程终止shutdown​ 命令会等待所有进程优雅地终止。如果设置了超时时间,并且在超时后仍有进程未终止,shutdown​ 会强制结束这些进程(通过发送 SIGKILL 信号)。
  4. 执行关机脚本shutdown​ 会执行 /etc/rc0.d/​ 目录下的所有脚本,这些脚本是用来在关机时停止服务的。脚本名称以 K​ 开头,表示它们是在关机时(shutdown)执行的。
  5. 同步文件系统shutdown​ 会调用 sync​ 命令,确保所有未写入磁盘的数据都被写入,以防止数据丢失。
  6. 卸载文件系统:系统会卸载所有已挂载的文件系统,确保文件系统的一致性。
  7. 停止内核:最后,shutdown​ 会停止内核,关闭系统。

二、命令参数

shutdown​ 命令的基本语法如下:

shutdown [选项] [时间] [消息]

选项

  • -r​:重启系统。
  • -h​:关机。
  • -c​:取消已经计划的关机。
  • -k​:只是发送警告信息,不会真的关机或重启。
  • -t​:设置在关机或重启之前等待的时间(秒)。

时间

时间参数指定了 shutdown ​命令何时执行关机或重启操作。它可以是以下形式之一:

  • now​:立即执行。
  • +m​:m 分钟后执行。
  • hh:mm​:在指定的时间(24 小时制)执行。

消息

消息参数是可选的,用于指定发送给所有登录用户的消息内容。

三、命令示例

添加关机任务

关机使用 -r​ ​选项,-r​ ​可以不写。

shutdown 	#默认一分钟后关机

shutdown -h now 	#立刻关机
shutdown now    	#立刻关机

shutdown -h 22:00 	#定时关机
shutdown 22:00    	#定时关机

shutdown -h +5 		#倒计时关机
shutdown +5    		#倒计时关机

添加重启任务

重启使用 -r​ ​选项,语法与关机相同

shutdown -r +5

查看任务

系统的关机、重启任务存放在 /run/systemd/shutdown/scheduled​,USEC​ ​时间戳去掉最后 6 位,可以还原得到执行任务的时间。

#命令:关机任务
sudo shutdown -h 22:00
#输出
Shutdown scheduled for 五 2024-06-14 22:00:00 CST, use 'shutdown -c' to cancel.

#命令:查看任务
cat /run/systemd/shutdown/scheduled
#输出
USEC=1718373600000000
WARN_WALL=1
MODE=poweroff

#命令:时间戳转换为日期格式
date -d @1718373600
#输出
2024年 06月 14日 星期五 22:00:00 CST

取消已经计划的关机

设置任务需要 sudo 权限,而取消任务则不需要权限。

shutdown -c

发送警告信息,但不执行关机

shutdown -k 10 "系统将在10分钟后进行维护,请保存您的工作并注销"
  • centos7 会给所有用户发消息,每分钟发一次,直到关机。

  • ubuntu22 没有反应,所有用户没有接收到消息。

本文共 722 个字数,平均阅读时长 ≈ 2分钟
0

海报

正在生成.....

评论 (0)

取消