当前位置:Linux教程 - Linux综合 - Unix系统应用服务程序的自动启停

Unix系统应用服务程序的自动启停

  目前,许多银行的服务器端操作系统彩的是Unix系统。作为系统的中心平台,Unix上往往运行了大量的应用服务程序,以响应客户端的各种请求。随着银行业务的增多,应用范围的扩大,这些应用程序也越来越多,这就带来了一系列的维护负担和运行风险。由于每一次开机都需要管理员逐个启动应用服务程序(包括数据库系统),每一次关机也面临同样的问题以保证程序和数据的完整性。为将各种损失减少到最小,实现启停过程中各项操作的自动化管理具有十分重要的意义。本文以SCO Unix OpnServer 5.0 为便,介绍实现应用服务程序的自动启停方法。 启停过程 SCO Unix OpenServer系统启动和关机时调用的各种程序存放在/etc/init.d目录下,并在/etc/rcn.d目录(其中n代表运行级: 0、1、2、3)中建立了相应的符号连接,对应系统开关时所执行的各项步骤。Unix启动过程由boot程序引导核心:/stand/unix开始,随后启动一个称为init的进程,顺序执行/etc/inittab文件中所列的程序项,最后引导系统进入特定的运行级。相关的文件和目录主要有: /etc/default/boot /etc/init.d及/etc/rcn,/etc/rcn.d (n代表运行级) 其中/etc/default/boot是一个文本文件,规定了Unix引导过程的参数设置。/etc/inittab也是一个文本文件,其内容由独立的命令行组成。init进程顺序读取各行,生成相应的运行级,并指向文件/etc/rcn和目录/etc/rcn.d。/etc/rcn是一个shell程序,当系统进入运行级n时,init就将对应的rcn投入运行。例如运行级2对应文件/etc/rc2和目录/etc/rc2.d,/etc/rc2的主要任务是运行/etc/rc2.d目录下的所有shell程序文件,优先顺序由程序名来区分。 在任何时候,系统只能处在一个运行级上,即系统的运行模式惟一。SCO Unix OpenServer设置了6种运行模式:0、1、2、3、6、S。其中0代表关机,1和S代表进入单用户进行系统维护,6代表系统重启,2和3表示进入多用户,3比2多了启动远程文件共享(RFS)和相应的守护进程,使本机可以连到RFS网络,以实现网络资源共享。 本文示例要求Unix系统引导完毕后自动启动Informix-Online 数据库系统,然后启动中间件产品(TongLINK/TongEASY通信软件,位于/home/tong目录下)及备份代理服务程序/etc/bkupexec/agent.be,关机时按以上反方向顺序自动关闭程序和处理数据。 根据以上要求,可手动编写两个shell程序:DBcomm及Backup。DBcomm处理数据库及通信软件,Backup处理备份代理服务程序。 数据库及通信软件的启停处理 1.以server用户注册,建立shell程序start.sh 和 stop.sh,负责数据库及通信进程的启动和关闭。 $vi /home/server/bin/start.sh oninit sleep 5 tld tminit $vi /home/server/bin/stop.sh tld stop tmend -97 onmode -ky sleep 5 2.以root用户注册,在/etc/init.d/目录下建立DBcomm 程序。 #vi /etc/init.d/DBcomm PATH=/bin:/usr/bin:/etc eXPort PATH rval=0 set_return() { /*实现正常退出*/ …… } case $1 in /*执行start.sh程序,启动数据库和通信进程*/   ‘start') if [ -x /home/server/bin/start.sh ]; then    su -l server -c start.sh    set_return else    rval=2 fi ;; /*执行stop.sh,关闭数据库及通信进程*/   ‘stop') if [ -x /home/server/bin/stop.sh ]; then    su -l server -c stop.sh    set_return else    rval=2 fi ;; *) echo “usage: $0 {startstop}” rval=1    ;;    esac    exit $rval 备份代理服务程序    在/etc/init.d目录下建立备份代理服务程序:Backup。
[1] [2] 下一页 

   #vi /etc/init.d/Backup    DESTDIR=/etc/bkupexec    if [ ! -d $DESTDIR ]then     exit    fi    case “$1” in /*启动备份代理进程*/     ‘start')     if [ -x $DESTDIR/agent.be ]then       $DESTDIR/agent.be -c $DESTDIR/agent.cfg 2>$DESTDIR/agent.log &     fi ;; /*关闭备份代理进程*/     ‘stop')      pid=` ps -egrep agent.besed -e ‘s/^ *//' -e ‘s/.*//'` /*查找进程*/     if [ “${pid}”!= “” ]then      kill ${pid}     fi ;;     *)     echo “Usage: /etc/init.d/agent.be { start stop }”    ;;     esac 符号连接    首先,建立到目录/etc/rc2.d下的符号连接,以实现Unix系统引导后的自动调用。该目录下程序均以P或S开头命名,P开头的优先运行,S次之,P和S后的数字按从小到大顺序执行。假设S后的数字最大已到99,执行以下命令:    #ln -s /etc/init.d/DBcomm /etc/rc2.d/S100DBcomm    #ln -s /etc/init.d/Backup /etc/rc2.d/S101Backup    然后,建立到目录/etc/rc0.d下的符号连接,以实现Unix系统关机前的自动调用。该目录下的程序均以K打头,运行顺序同上。因为首先需要安全关闭应用程序,所以新建连接K后的数字要小于现有数字。假设当前最小为10,执行以下命令:    #ln -s /etc/init.d/Backup /etc/rc0.d/K05Backup    #ln -s /etc/init.d/DBcomm /etc/rc0.d/K06DBcomm 小 结    经过上述设置后,每当在Unix系统中追加一项应用服务程序时,只需在/etc/init.d中编写类似shell程序,同时建立到/etc/rc0.d 和/etc/rc2.d的符号连接,便可轻松实现应用服务程序的自动化管理,数据也得到了充分有效的保护。

(出处:http://www.sheup.com)


上一页 [1] [2] 

   #ln -s /etc/init.d/Backup /etc/rc0.d/K05Backup    #ln -s /etc/init.d/DBcomm /etc/rc0.d/K06DBcomm 小 结    经过上述设置后,每当在Unix系统中追加一项应用服务程序时,只需在/etc/init.d中编写类似shell程序,同时建立到/etc/rc0.d 和/etc/rc2.d的符号连接,便可轻松实现应用服务程序的自动化管理,数据也得到了充分有效的保护。

(出处:http://www.sheup.com/)


上一页 [1] [2] [3]