首先说一句,不要认为关机就是直接关闭电源,很简单。如果你做运维的话,你就知道这种做法对你的服务器有多大伤害了。当然一个服务器是很少遇到关机的操作的,但是也许就会遇到特殊情况呢。
因为Linux后台有很多进程正在运行,用户的数据还没有进行存储,强行关机会导致进程数据丢失,所以应该等数据全部写入再进行关机才是最正确的做法,并且强制关机还会影响系统的稳定性,还有可能造成系统的硬件损坏。
首先不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中,然后再运行以下提到的关机与重启命令。
下面讲解一下关机与重启的命令
init
init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。
init定义了7个运行级别(runlevel),分别是:
0 停机(千万不能把initdefault 设置为0)
1 单用户模式
2 多用户,没有 NFS(和级别3相似,会停止部分服务)
3 完全多用户模式
4 没有用到
5 x11(Xwindow)
6 重新启动(千万不要把initdefault 设置为6)
实例:
1 | init 0 #关机 |
shutdown
重要参数:
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-c] 取消目前正在执行的关机程序。、
[-f] 在重启计算器〔reboot〕时忽略fsck
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
实例:
1 | shutdown -h now #指定现在立刻关机 |
reboot
实例:
1 | reboot #立即重启 |
halt
实例:
1 | halt #关闭系统后关闭电源。 |
poweroff
重要参数:
-n:关闭操作系统时不执行sync操作;
-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
-f:强制关闭操作系统;
-i:关闭操作系统之前关闭所有的网络接口;
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
实例:
1 | poweroff #立即关闭系统 |
本文作者:冰羽
本文地址: https://bingyublog.com/2018/03/30/关于Linux关机与重启的那些事/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
v1.5.2