Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2318662
  • 博文数量: 535
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7066
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(535)

文章存档

2024年(4)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: AIX

2013-07-02 16:39:43



AIX如何开机自动重新启动程序

Posted on 2012-02-01 14:25 疯狂 阅读(829) 评论(0)  编辑  收藏 所属分类: unix
在学习本主题之前,还是先学习一些AIX关于启动的基础知识,如果你只关心如何开机自动重启程序,请跳过第一章、第二章。
----------------------------
第一章 AIX开机启动过程介绍
----------------------------
    不从最开始说起了,只说从AIX kernel被装载到内存开始。
     1、AIX系统存储在BLV的kernel在内存中创建/(root),/usr/和/var文件系统。
        要注意,这里所说的文件系统,包括kernel在启动过程中都是存储在RAM(内存)中的。
        他们没有权限访问BLV之外的任何内容。
     2、文件系统被装载到RAM之后,kernel开始执行init进程,这个时候init进程开始接管系统启动进程。
     3、AIX kernel把init进程的PID设为1,这个进程是作为parent,root进程存在的,是AIX系统中运行的其他所有进程的父进程.当init进程被装载并在启动过程运行,init调用rc.boot.
     4、rc.boot文件在AIX系统启动过程中有三个重要的作用。
       (1)、第一部分是rc.boot初始化了系统的硬件,使其为系统的启动做好准备。通过系统设置命令cfgmgr,一小部分系统启动需要的驱动被配置。
       (2)、第二部分是文件系统/,/usr,/var和页面空间被装载。在这些文件系统被装载以后,init被硬盘上的PID为1的init进程所替代,同时RAM被清空。
       (3)、第三部分和最后部分,rc.boot,实际的init进程是从硬盘上运行的。
              当init被执行后,/etc/inittab文件被堵去,同时里面的每一条都被执行。
              在这个过程中,/tmp文件系统正被装载到硬盘上。
              现在,系统正在启动的最后过程中,cfgmgr命令再一次运行把剩下的在第一部分没有被rc.boot运行的驱动运行起来。
     5、init进程被执行以后,下一步就是init会打开/etc/inittab,并且执行里面的内容。 ----------------------------------------------
第二章 AIX启动的相关命令知识
----------------------------------------------
1、确认当前系统的运行级别
                                 在系统维护或者切换系统运行级别之前,你也许需要检查当前系统的运行级别。
            cat /etc/.init.state                                                      lsitab init 

2、显示系统运行级别的更改纪录
                                 提示:确保bosext2.acct.obj 代码安装在你的系统上。
                                       (1)  以root身份登陆系统.
                                       (2) 执行/usr/lib/acct/fwtmp 
---------------------------------------
第三章 开机自动运行程序
---------------------------------------
       开机启动程序的方法有很多,我只谈谈思路,然后给出一些解决方法。
       从第一章AIX系统启动过程,我们知道AIX系统在启动过程中,会扫描inittab文件的内容,并执行它。
              1、那么,我们可以通过直接修改inittab文件,使系统在开机重启时运行我们的命令。
              2、也可以通过inittab文件里指向的脚本(rc.local、rc.d组,后面会详细介绍)。
                    间接使系统在开机重启时运行我们的命令。
              3、其他方法:如使用crontab的定时任务功能,间接启动脚本,
                   这种方法不是开机后马上运行,要看crontab里设置的时间间隔的长短而定。
      
一、通过rc.local启动(最简单的方法
      rc.local是inittab里的一个脚本指向,通过运行lsitab -a|grep rc.local ,我们可以得到rc.local:2:once:/etc/rc.local > /dev/console 2>&1

      1、 mkitab -i rcnfs "rc.local:2:once:/etc/rc.local > /dev/console 2>&1"   #如果inittab文件里没有关于rc.local的信息,可以通过此命令创建脚本。
            注意系统运行级别要与你想要运行的系统运行级别一致,这里系统运行级别是2。
      2、touch /etc/rc.local #新建rc.local文件
      3、chmod 700 /etc/rc.local #设置执行权限
      4、把执行脚本放到/etc/rc.local里之后,AIX系统在重新启动时,就会运行/etc/rc.local里的脚本了。

二、通过/etc/rc.d脚本启动(需要编写start\stop脚本
      /etc/rc.d是inittab里的一组脚本指向,通过运行lsitab -a|grep rc.d,我们得到
           l2:2:wait:/etc/rc.d/rc 2
           l3:3:wait:/etc/rc.d/rc 3
           l4:4:wait:/etc/rc.d/rc 4
           l5:5:wait:/etc/rc.d/rc 5
           l6:6:wait:/etc/rc.d/rc 6
           l7:7:wait:/etc/rc.d/rc 7
           l8:8:wait:/etc/rc.d/rc 8
           l9:9:wait:/etc/rc.d/rc 9
      1、cd /etc/rc.d/       #进入/etc/rc.d目录
      2、cd /samples       #进入/etc/rc.d/samples 目录,可以得到K70lpd、README.txt、S70lpd三个文件。
           这里只是简单的模仿K70lpd和S70lpd,更高级的方法,留给大家自己研究了。
           下面,我们分别创建自己的启动和结束脚本。
                 例如:
# more K69oa
#!/bin/ksh
##################################################
# name: K69oa
# purpose: sample script that start or stop oa.
#转载请注明From:空气人儿
##################################################

case "$1" in
start )
        WebSphere/AppServer/bin/startServer.sh server1
        IBMHttpServer/bin/apachectl start
        ;;
stop )
        WebSphere/AppServer/bin/stopServer.sh server1
        IBMHttpServer/bin/apachectl stop
        ;;
* )
        echo "Usage: $0 (start | stop)"
        exit 1
esac


# more S69oa
#!/bin/ksh
##################################################
# name: S69oa
# purpose: sample script that start or stop oa.
#转载请注明From:空气人儿
##################################################

case "$1" in
start )
        WebSphere/AppServer/bin/startServer.sh server1
        IBMHttpServer/bin/apachectl start
        ;;
stop )
        WebSphere/AppServer/bin/stopServer.sh server1
        IBMHttpServer/bin/apachectl stop
        ;;
* )
        echo "Usage: $0 (start | stop)"
        exit 1
esac
     
       3、chmod 700 这两个脚本
       4、把这两个脚本放到/etc/rc.d/rc2 下。
       5、使用shutdown -rF重新启动机器时,会自动运行放在/etc/rc.d/rc2下的S69oa脚本中的stop部分;
            系统重启之后,系统会自动运行放在/etc/rc.d/rc2下的S69oa脚本中的start部分。

三、自定义启动脚本(与方法一基本相同,自己研究吧)



参考:

http://www.ibm.com/developerworks/aix/library/au-speakingunix_unixboot/index.html
转载自:空气人儿
阅读(1732) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~