Linux系统关机与重新


Linux系统关机与重新
 
不同于桌面系统,作为服务器,我们较少对Linux系统进行系统重启,但在以下情形出现时,我们会对机器进行重启:  www.2cto.com  
更换硬件
更改系统配置
系统僵死,需要重启恢复
关闭和重启系统方式
引导系统本质上只能用一种方法,与此不同的是,关闭或重新引导系统有多种方法:
关闭电源(下电)
使用shutdown命令
使用halt、poweroff或reboot命令  www.2cto.com  
使用telinit改变init运行级别
关闭电源
基于以下两点原因,直接对机器下电,并不是一种好的习惯:
可能导致硬件损坏
部分数据可能仍在内存,未被写回磁盘,这时下电会丢失数据或造成文件系统损害;
因而尽量使用其他方式关闭或重新引导系统。
 
shutdown命令
使用shutdown可以挂起(halt)或重启(reboot)系统,使用-h选项指示挂起系统,起到与halt命令相同的作用;使用-r选项指示重启系统,起到与reboot命令相同的作用。
 
执行shutdown命令后,系统将向所有登陆用户发送挂起或重启消息。
执行shutdown –h now后发送挂起消息:
 
[sql] 
<span style="font-family:Comic Sans MS;font-size:18px;"># shutdown -h now  
Broadcast message from root (tty1) (Thu May 3 10:58:22 2012):  
The system is going down for system halt NOW!  
INIT: Switching to runlevel: 0  
INIT: Sending processes the TERM signal</span>  
 
执行shutdown –r now后发送重启消息:
[sql] 
<span style="font-family:Comic Sans MS;font-size:18px;"># shutdown -r now  
Broadcast message from root (tty1) (Thu May 3 11:18:22 2012):  
The system is going down for system reboot NOW!  
INIT: Switching to runlevel: 6  
INIT: Sending processes the TERM signal</span>  
 
 
执行shutdown后,其他用户不能再登入系统,另我们可以指定系统挂起或重启的时间以及说明,如下两例:
凌晨1::00停机维护:
[sql] 
<span style="font-family:Comic Sans MS;font-size:18px;">shutdown –h 1:00 “going down for scheduled maintenance. Expected downtime is 1 hour.”</span>  
 
指定相对关机时间15分钟后关机:
[sql] 
<span style="font-family:Comic Sans MS;font-size:18px;">shutdown –h +15 “going down for emergency check.”</span>  
 
 
halt和reboot命令
halt记录关机情况,终止非必要进程,执行sync系统调用,等待文件系统写操作完成,然后停止内核,poweroff命令等价于halt。
从以上”shutdown –h”和”shutdown –r”执行输出可知,执行halt即进入运行级别0,执行reboot即进入运行级别6,日志文件/var/log/messages中会记录相应日志。
系统重启日志:
[sql] 
<span style="font-family:Comic Sans MS;font-size:18px;">May  3 11:45:25 slot14 shutdown[11119]: shutting down for system reboot  
May  3 11:45:25 slot14 init: Switching to runlevel: 6  
May  3 11:45:25 slot14 user_cmd: 2012-05-03 11:45:25 shutdown -r now by root from [root     tty1         May  3 11:44]</span>  
 
系统挂起日志:
[sql] 
<span style="font-family:Comic Sans MS;font-size:18px;">May  3 10:50:22 slot14 shutdown[11561]: shutting down for system halt  
May  3 10:50:22 slot14 init: Switching to runlevel: 0  
May  3 10:50:22 slot14 user_cmd: 2012-05-03 10:50:22 shutdown -h now by root from [root     tty1         May  3 10:48]</span>  
 
通过查看/var/log/messages日志记录,可判断机器是无端重启还是人为地重启。
telinit命令
执行telinit命令可以指引init进入指定的运行级别,如重启系统:
[sql] 
<span style="font-family:Comic Sans MS;font-size:18px;">#telinit 6</span>  
 
使用telinit时,不会得到像执行shutdown那样友好的警告信息,较少用作挂起和重启命令,不过进行/etc/inittab文件的修改测试,使用该命令比较方便。
小结
对于承载已上线业务的服务器,重启系统是比较大的动作。当操作系统相关故障发生时,我们应先考虑收集日志信息,必要时再进行系统重启。
 

相关内容

    暂无相关文章