AIX系统的运行是很稳定的,对于实时在线的业务系统来说,当系统正常启动后,就会一直在运行,AIX自身具有动态优化系统的能力,所以系统稳健性比较高。 但是,如果一个系统运行时间长了,创建和死亡的进程就非常多,系统资源经常性重复使用,所以内存中就会存在很多碎片,会影响系统的性能,而且文件系统也会存在一些磁盘碎片。 基于这种情况,所以系统也需要定期的重启维护,让系统的内存和动态环境又进入到初始状态。

 

当遇到下列情况时,很有可能需要重启系统:

       (1)安装了某个新软件或者更改了某个软件的配置

       (2)某个硬件存在问题

       (3)操作系统运行性能很低

       (4)操作系统一直被挂起,即死锁

       (5)某个文件或文件系统可能被破坏

       (6)升级机器的微码

 

关于微码,参考Blog:

       IBM P系列服务器 系统固件(微码)说明


 

       停止操作系统有两种方法:重启系统和安全关闭系统而不重启。另外还可以让正在运行的系统进入单用户方式,在某些情况下还可以立即停止操作系统。

 

 

一. 安全关闭系统

       停止操作系统是调用一系列事件来保证文件的完整性,要让系统中所有的进程停止运行,并且将内存中正在处理的数据保存到磁盘上,而且在关闭系统之前必须确保所有正在使用系统的用户退出。 这样才能安全关闭。

 

       可以用root用户执行shutdown命令关闭系统,使用该命令时,它会把系统即将关闭的信息告诉所有已经登陆的用户,然后关闭正在运行的进程,卸载安装的文件系统,然后终止系统。

       shutdown是一个shell程序。使用不带参数的shutdown命令可以安全地关闭系统。 在停止系统运行之前,它将通过wall命令把系统即将关闭的信息告诉已经登陆的所有用户,并给他们留一分钟的时间来完成工作。 1分钟是默认值,用户可以自己设置。 1分钟之后系统就开始调用killall命令kill掉所有正在运行的进程,用sync命令将内存中的缓冲数据保存到硬盘上,在卸载已经安装的文件系统,最后用halt命令停止系统运行,系统不会自动重新启动。 当halt命令被运行时,它就使用syslogd进程,在日志文件/var/adm/wtmp中写一条关闭系统的记录,同时也记录一条状态为关闭的错误日志信息,等将所有数据写道硬盘后,就停止处理器的运行。

 

shutdown的一些用法:

#shutdown -i: 提示用户一步一步地关闭系统。

#shutdown +30 “the system will be shutdowon after waiting 30 minutes.”

       关闭之前,通知所有用户。

#smit shutdown

 

 

二. 紧急关闭系统

       如果遇到紧急情况,必须停止系统运行,也就是说系统要在很短的时间内停止运行。 在这种情况下,只能执行kill进程,卸载文件系统的工作。 我们可以使用shutdown来关系系统。

       shutdown -F(大写)命令就是表示在关系系统时不通知用户,而是以最快的速度停止系统运行。 -F命令也比较安全的。

       此外,还可以使用halt命令来关闭系统, 该命令只能由root用户执行。 执行该命令时,先将数据保存到磁盘上,然后停止处理器的运行。 如果有用户已经登陆到系统中,就无法执行halt命令。 只有当所有用户(除root)都退出了系统,才可以执行halt命令。 halt命令一般在单用户模式下执行。 实际上,halt命令也是调用fasthalt命令来停止系统,fasthalt命令兼容BSD UNIX系统。

       #halt   直接kill进程,立即关闭系统

       #halt -l  在/var/adm/wtmp文件中不记录中断系统运行日志,直接停止系统

       #halt -q 快速终止系统,在HACMP切换时常用

       #halt -n 在终止系统运行之前halt不会把内存中的数据同步(sync)到磁盘。

 

 

三. 重启操作系统

       也是用shutdown 命令。只不过参数不一样。

       #shutdown -r      重启OS

       #shutdown -ri +30 “the system will be reboot” -i 参数表示交互式

       #shutdown -Fr  快速的重启系统

      

       此外,reboot命令也可以重新启动系统,但是执行reboot命令之前,必须确保所有用户已经退出系统。 reboot命令一般在单用户下使用。 reboot命令同样会调用sync命令把内存中的数据同步复制到磁盘,还会让系统关闭其他活动,例如再同步硬件时钟等。 通常情况下,系统关闭后将重启,会自动检查磁盘,如果磁盘检查成功,系统启动后将进入默认的运行级别。 默认情况下,reboot命令也会使用syslogd进程,在日志文件/var/adm/wtmp中写一条重起系统的记录。

       如果系统参数autorestart值为true,当系统掉电或者系统崩溃后,系统会重启。 默认情况下,该参数为false。 查看该参数的方法:

       -bash-3.00$ lsattr -D -l sys0

SW_dist_intr    false   Enable SW distribution of interrupts              True

autorestart     true    Automatically REBOOT system after a crash         True

boottype        disk    N/A                                               False

capacity_inc    100     Processor capacity increment                      False

capped          true    Partition is capped                               False

conslogin       enable  System Console Login                              False

cpuguard        enable  CPU Guard                                         True

dedicated       false   Partition is dedicated                            False

ent_capacity            Entitled processor capacity                       False

frequency               System Bus Frequency                              False

fullcore        false   Enable full CORE dump                             True

fwversion               Firmware version and revision levels              False

id_to_partition         Partition ID                                      False

id_to_system            System ID                                         False

iostat          false   Continuously maintain DISK I/O history            True

keylock                 State of system keylock at boot time              False

log_pg_dealloc  true    Log predictive memory page deallocation events    True

max_capacity            Maximum potential processor capacity              False

max_logname     9       Maximum login name length at boot time            True

maxbuf          20      Maximum number of pages in block I/O BUFFER CACHE True

maxmbuf         0       Maximum Kbytes of real memory allowed for MBUFS   True

maxpout         0       HIGH water mark for pending write I/Os per file   True

maxuproc        128     Maximum number of PROCESSES allowed per user      True

min_capacity            Minimum potential processor capacity              False

minpout         0       LOW water mark for pending write I/Os per file    True

modelname               Machine name                                      False

ncargs          6       ARG/ENV list size in 4K byte blocks               True

nfs4_acl_compat secure  NFS4 ACL Compatibility Mode                       True

pre430core      false   Use pre-430 style CORE dump                       True

pre520tune      disable Pre-520 tuning compatibility mode                

realmem                 Amount of usable physical memory in Kbytes        False

rtasversion             Open Firmware RTAS version                        False

sed_config      select  Stack Execution Disable (SED) Mode                True

systemid                Hardware system identifier                        False

variable_weight 0       Variable processor capacity weight                False

-bash-3.00$

 

如果想改变参数的值为true,可以使用如下命令:

       # chdev -l sys0 -a autorestart=true

查看命令:

       #lsattr -E -l sys0

 

 

reboot 命令会调用fastboot命令来重启系统,在系统重启时,会调用fsck命令检查文件系统,fsck命令兼容BDS Unix系统。

 

#reboot -l 重启时不记录日志

#reboot -n  reboot时不把内存中的数据同步到磁盘,这样很可能损坏文件系统

 

reboot 命令可以在单用户下快速重启系统,但是使用reboot命令比较危险,在多用户模式下很容易使文件系统受损,导致数据丢失,严重时,如果丢失了重要的系统文件,会导致系统无法使用,所以不建议使用reboot命令。

 

 

四. 关闭系统到单用户模式

       当系统处于多用户模式时,可以使用shutdown -m 命令将系统从多用户模式改变到单用户模式,实际上它是调用init -s命令来完成这个功能的。

       在改变系统当前运行模式时,必须注意,由于改变系统模式时,init进程会kill现在正在运行的进程,而且还会卸载文件系统。 所以在执行命令前必须保证当前工作目录为 / . 然后在执行命令:

#cd /

#shutdown -m