本文档讨论了如何定制系统, 以使用户定义的应用在系统引导过程中自动启动, 并在系统关闭时自动停止.
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"
======================================================================
主要利用了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中