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 - 重新启动
系统重新启动总结:
- Reboot
- init 6
- shutdown -r now
- halt --reboot
- poweroff --reboot
系统关机总结:
- init 0
- shutdown -h now,
- Half
- 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