Linux下的易见的关机与重启操作有shutdown、halt、reboot等,而他们的之间又有着看似相同而又不一样的地方,如下。
shutdown
shutdown命令是最推荐使用的关机或重启命令。她可以安全地关闭或重启Linux系统,且在系统关闭之前给系统上所有的登陆用户提示一条警告信息。该命令还允许用户制定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段
精确时间的格式是hh:mm,表示时间和分钟,时间段有+和分钟表示,系统执行该命令后会自动进行数据同步工作。
该命令的一般格式:shutdown [选项] [时间] [警告]
命令中各选项的含义为:
-k 并不真正关机而是发出警告信息给所有用户
-r 关机后不重新启动
-f 快速关机重启动时跳过 fsck (file system check)
-n 快速关机不经过init程序
-c 取消一个已经运行的shutdown
需要特别说明的是以上命令都只能在超级用户(root)下使用
eg1:系统在十分钟后关机并重启:# shutdown -r + 10
eg2:系统马上关机并且不重新启动:# shutdown -h now
halt
halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死正在运行的进程。文件操作写操作完成后就立即停止内核
halt命令的部分参数如下:
[-f] 没有调用shutdown而强制关机或重启
[-i] 关机过重启之前,关闭所有网络接口
[-p] 关机调用poweroff( 会发送一个 ACPI 信号来通知系统关机。),此选项为缺省选项
poweroff ### 关闭机器
poweroff --halt ### 停止机器
poweroff --reboot ### 重启机器
reboot
reboot的工作与halt类似,起作用是重新启动,而halt是关机,其参数也与halt类似。reboot命令重启动系统时是删除所有的进程,而不是平稳的终止他们,因此,使用reboot命令可以快速地关闭系统,但如果还有其他游湖在该系统上工作时,就会引起数据的丢失,所有reboot命令的使用场景主要在单用户模式。
init
init是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换到工作时立即完成的。init 0 命令用于立即将系统运行级别切换为 0,即关机;init 6 命令适用于将系统运行级别切换为 6 ,即重新启动
#init 0 - 停机(千万不能把initdefault 设置为0 )
#init 1 - 单用户模式
#init 2 - 多用户,没有 NFS 不联网
#init 3 - 完全多用户模式(标准的运行级)
#init 4 - 没有用到
#init 5 - X11 (xwindow) 图形化界面模式
#init 6 - 重新启动 (千万不要把initdefault 设置为6 )