shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟,时间段由+ 和分钟数表示。系统执行该命令后会自动进行数据同步的工作。

halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。

reboot的工作过程与halt类似,其作用是重新启动,而halt是关机。其参数也与halt类似。reboot命令重启动系统时是删除所有的进程,而不是平稳地终止它们。因此,使用reboot命令可以快速地关闭系统,但如果还有其它用户在该系统上工作时,就会引起数据的丢失。所以使用reboot命令的场合主要是在单用户模式。

命令的一般格式:

shutdown [选项] [时间] [警告信息]

halt [选项]

reboot[选项][参数]

Poweroff[选项]

 

  命令中各选项的含义为:

--halt 停止设备

-p --poweroff 设备断电

--reboot重新启动设备

-f --force 强制关机/重启(shutdow没有此选项)

-w --wtmp-only 只记录log,并不进行实际关机/重启

-d --no-wtmp 重启但不记录log

- k 并不真正关机而只是发出警告信息给所有用户

- c 取消一个已经运行的shutdown

系统在十分钟后重启: # shutdown -r +10

系统马上关机:   # shutdown -h now

 

init用于切换系统的运行级别,切换的工作是立即完成的。init 0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动

Init的其他使用方法

#init 0 - 停机

#init 1 - 单用户模式

#init 2 - 多用户,没有 NFS 不联网

#init 3 - 完全多用户模式(标准的运行级)

#init 4 - 没有用到

#init 5 - 图形化界面模式

#init 6 - 重新启动

 

系统重新启动总结:

  1. Reboot
  2. init 6
  3. shutdown -r now
  4. halt --reboot
  5. poweroff --reboot

系统关机总结:

  1. init 0
  2. shutdown -h now,
  3. Half
  4. poweroff

 

systemd是所有进程的祖先(CentOS 7),其进程号始终为1。Systemd作为系统的管理者,也提供了重启和关机相关的命令。

重启

systemctl start reboot.target

systemctl start kexec.target

Systemctl reboot 等价于start reboot.target --irreversible

Systemctl kexec 等价于start kexec.target --irreversible,快速启动,跳过固件引导

systemctl start ctl-alt-del.target等价于手工按 Ctrl-Alt-Del, 若连续7次,强制重启。(man手册上如此,没有实际测试过)

关机

systemctl start poweroff.target

systemctl start halt.target