环境:(产品,平台,机型,软件版本,等)
平台:pSeries AIX
机型:pSeries
问题描述:
AIX系统的关机命令有shutdown、halt;重启命令有shutdown -Fr和reboot,但是对于这几个命令的正确使用却存在一些误区。
解答:
用shutdown命令停止操作系统是一个最安全最彻底的方法。使用不带参数的shutdown命令,在停止系统运行之前,他将通过wall命令吧系统即将关闭的信息告诉已登录的所有用户,并且留给1分钟(默认时间,可以更改)时间来完成剩余工作,1分钟后,系统开始调用killall命令杀死人在系统中运行的进程,用sync命令将内存中的缓冲数据保存到硬盘上,再卸载已经安装的文件系统,最后是用halt命令停止系统。
使用halt命令来关闭系统,该命令只能有root用户执行,halt一般是在单用户模式下使用,执行它时,先将数据保存到磁盘上,然后就停止处理器的运行,halt命令不做任何提示,而是直接杀死进程。如果有其他用户已经登录到系统中,就不要执行halt命令。只有除root用户之外的其他所有用户都退出系统之后,才可以执行halt命令,否则会导致用户数据丢失。实际上halt命令也是调用fasthalt命令来停止系统的。当halt命令执行时,它会调用syslogd进程在/var/adm/wtmp文件中写一条关闭系统的记录,同时也记录一条状态为关闭的错误日志信息。做hacmp切换测试时,常使用halt -q命令。
reboot命令可以重新启动系统,但是执行reboot命令之前,必须确保所有的用户已经退出系统,reboot命令一般在单用户模式下使用。虽然使用reboot可以快速重启计算机,但是使用reboot命令比较危险,在多用户模式下很容易使文件系统受损,导致数据丢失,严重时会导致系统无法启动。
有客户在多用户环境下使用reboot做hacmp切换测试,会发现系统无法重启,其实这是合理现象,毕竟reboot不支持多用户模式下的使用。shutdown是一个graceful的关机动作,因而不会引起hacmp的切换。所以在做hacmp切换的测试中需要将其他用户退出后使用halt命令进去测试。
可以使用下面的命令进入单用户模式,也就是维护模式下:#init s
使用shutdown -m命令也可以将系统运行级别从多用户模式下改变到单用户模式,实际上它还是会调用了#init -s命令来完成的。
ps:#init 0这个命令在其他unix或linux系统上都是一个关机命令,但是在aix系统上init 0这个命令并不能用来关机,会进入一个比较奇怪的状态,因为在aix中,0、1目前还没有含义,是系统为将来保留的。