庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>系统管理>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

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

 作者:本站收集   日期:2005-3-13
字号选择〖 〗/ 双击滚屏 单击停止   
目前,许多银行的服务器端操作系统彩的是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 {start|stop}”
rval=1
   ;;
   esac
   exit $rval
备份代理服务程序
   在/etc/init.d目录下建立备份代理服务程序:Backup。
   #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 -e|grep agent.be|sed -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的符号连接,便可轻松实现应用服务程序的自动化管理,数据也得到了充分有效的保护。
上一篇:如何使用rsh/tar快速克隆Linux服务器    下一篇:Linux之邮件服务器配置指南  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿