本文档讨论了如何定制系统, 以使用户定义的应用在系统引导过程中自动启动, 并在系统关闭时自动停止.

  1. 自动启动定制的软件

  在系统引导时, init 进程顺序检测 /etc/inittab 文件, 决定在引导过程中进行什么样的操作.如果应用, 进程或其它的用户操作需要在系统引导过程中进行, 则要在 /etc/inittab 文件中加入相应的条目.通常的做法是创建一个名为 rc.local 的脚本文件, 将所有要在系统引导过程中启动的用户应用写入该脚本文件中. 该脚本文件可以在 /etc/inittab 文件中被调用, 通常是在所有系统应用和服务启动后, 在用户登录被允许之前被调用. 位置通常是在主控登录的条目前.

  下面是一个例子:

  rc.local:2:wait:/etc/rc.local > /dev/console 2>&1

  在上面的条目中, init 将在执行余下的条目之前等待该脚本程序的完成.如果进程, 应用或命令需要通过特定的用户运行, 则可在运行的命令中加入su命令.

  如: su myuser "-c /usr/bin/myapp"

  建议在脚本程序中加入应用开始启动和完成启动的输出提示.

  如:

  #!/bin/ksh

  echo "Starting User Applications...."

  echo "Starting Application XYZ"

  su myuser "-c /usr/bin/myapp"

  echo "Startup of User Applications completed"

  2. 自动停止定制的软件

  shutdown命令用于关闭AIX系统. 在此操作中会关闭所有AIX子系统及文件系统.如果名为 /etc/rc.shutdown 的脚本程序存在, 系统会首先执行该脚本程序中的命令. 在该脚本程序中可以加入关闭用户应用的命令. 建议在脚本程序中加入应用停止运行和完成停止运行的输出提示.

  如:

  #!/bin/ksh

  echo "Stopping User Applications...."

  echo "Stopping Application XYZ"

  [ commands to stop application ]

  echo "Shutdown of User Applications completed"





======================================================================

今天添加了oracle自动启动和关闭,测试顺利。

  主要利用了oracle9i 提供的 dbstar 和 dbshut 脚本

  1 将 /etc/oratab 中响应的 instance 的“N”改成“Y”

  2 建立 /etc/rc.local 脚本

  #!/bin/ksh

  echo "Start oracle listener: STR0108"

  su - oracle "-c lsnrctl start str0108"

  echo "Start oracle instance: STR0108"

  su - oracle "-c dbstart"

  3 建立/etc/rc.shutdown脚本

  #!/bin/ksh

  echo "Stop oracle instance: STR0108"

  su - oracle "-c dbshut"

  echo "Stop oracle listener: STR0108"

  su - oracle "-c lsnrctl stop str0108"

  4 在/etc/inittab中增加:

  rc.local:2:wait:/etc/rc.local > /dev/console 2>&1

  5 启动日志放在/var/adm/ras/bootlog中