在linux下有不少关机的命令,在实际应用中它们仍是有一点区别的,对系统也可能产生不一样的影响,接下来主要是将下它们的具体用法和不一样。linux
linux下一些比较经常使用的重启和关机命令有: shutdown 、halt、poweroff、init、reboot安全
shutdown命令(须要root权限,普通用户能够经过sudo来得到权限)
网络
在这几个命令当中推荐使用shutdown命令,能够经过添加参数实现系统的关机和重启。ide
shutdown执行关机,是送信号给init,要求它改变运行级别,以此来关机。关机或重启其实是运行级别的调整,因此也能够用init直接调整运行级别来进行关机或重启。spa
使用shutdown命令关机是安全的:
操作系统
linux系统是一个多用户的操做系统,而且后台也会运行多个进程。用户采用直接关闭电源的方式进行强制关机,是十分危险的,它可能会形成系统数据丢失,甚至损坏硬件设备。blog
而在使用shutdown命令添加时间参数时,会通知每一个已登陆的用户系统将要关机,能够适当的给用户保存当前工做的时间,从而避免进程忽然强制关闭可能形成的危险。进程
shutdown工做过程,系统管理员执行shutdown命令后,会发送信号给init,请求其改变运行级别runlevel。ci
runlevel 0 被用来停机〔halt〕get
runlevel 6 是用来从新激活〔reboot〕系统
对于详细的runlevel问题,能够查看/etc/inittab文件,下边也会列出来。
shutdown 参数说明:
-t 在改变到其它runlevel以前,告诉init多久之后关机。
-r 重启计算器。
-k 并不真正关机,只是送警告信号给每位登陆者〔login〕。
-h 关机后关闭电源〔halt〕。
-n 不用init而是本身来关机。不鼓励使用这个选项,并且该选项所产生的后果每每不老是你所预期获得的。
-c cancel current process取消目前正在执行的关机程序。因此这个选项固然没有时间参数,可是能够输入一个用来解释的讯息,而这信息将会送到每位使用者。
shutdown -r 2/now 2分钟后或者马上重启系统
shutdown -h 2/now 2分钟后或者马上关闭系统
示例:系统管理员执行shutdown -h 2 ,2分钟后关机,系统会通知登陆用户asd即将关机以下
如今管理员又想取消关机,可使用-c参数,并说明取消的缘由
用户asd收到关机取消的信息
2.halt
halt命令至关与shutdown -h now马上关机,不通知任何用户。
参数:
-n 在关机前不作将记忆体资料写回硬盘的动做
-w 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
-i 在关机以前先把全部网络相关的装置先中止
-p 当关机的时候,顺便作关闭电源(poweroff)的动做
3.poweroff
poweroff和halt命令都是reboot的软链接,用法同样
4. init
init是全部进程的祖先,是Linux系统操做中不可缺乏的程序之一。它的进程号始终为1。
不一样的运行级定义以下:(能够参考Red Hat Linux 里面的/etc/inittab)
0 停机(千万不能把initdefault 设置为0 )
1 单用户模式
2 多用户,没有 NFS
3 彻底多用户模式(标准的运行级)
4 没有用到
5 X11 (xwindow)
6 从新启动 (千万不要把initdefault 设置为6 )
shutdown 关机就是请求init切换到runlevel 0.