改动地方
1、在测试应用为用友NC6,因为NC的集群有master的概念,非master节点依赖于master,所以,对于此种情况,必须首先判定master正常启动,才能启动其他节点。
经项目测试,发现有时master端口打开后就去启动其他节点,有时会遇到master not ready的错误,因此,手动在master端口起来后增加sleep 20.
2、其他所有server因为没有依赖关系,所以,可以并行启动,减小启动时间。
3、使用函数处理启动过程和判断端口打开过程,有效较少代码数量。
#!/bin/bash #author:wjf #date:2015/05/19 #version:2.0 #测试环境为wls1036水平集群 v_curr_user=`whoami` #------------实际was和代码安装的用户,比如用ufida,就直接把”nc63“改成”ufida"就行。 v_start_user=uweblogic #------------用于安装和启动weblogic服务器的用户 v_admin_url=http://10.10.71.106:9001 #------------管理服务器的url v_dir_domain_bin=/weblogic/Oracle/Middleware/user_projects/domains/gyhr_domain/bin #------------启动域的bin目录路径 v_admin_port=9001 #------------weblogic管理服务器端口 #根据服务端口是否打开判定服务时候已经启动 f_is_service_start() { v_is_port_open=0 while [ ${v_is_port_open} -eq 0 ] do sleep 10 v_is_port_open=`netstat -ano |grep ${1}|wc -l` done } #启动受管理服务器 f_start_ms() { echo "启动受管服务器${1}" cd ${v_dir_domain_bin} nohup ./startManagedWebLogic.sh ${1} ${v_admin_url} & f_is_service_start ${2} echo "${1}启动完毕" echo "" } #主代码部分 if [ ${v_curr_user} = ${v_start_user} ] then #启动服务代码部分 echo "启动管理服务器" cd ${v_dir_domain_bin} nohup ./startWebLogic.sh & f_is_service_start ${v_admin_port} echo "启动管理服务器完毕" echo "" #---------------修改定制部分(始)------------------ f_start_ms master 8001 sleep 20 f_start_ms server1 8002 & f_start_ms server2 80003 & #---------------修改定制部分(终)------------------- else echo "当前用户为${v_curr_user}" echo "建议使用${v_start_user}启动服务" echo "请检查当前用户环境" fi
时间: 2024-11-08 13:38:06