shell方式重启weblogic

通过杀进程的方式来关闭weblogic而不是执行
sh stopWebLogic.sh weblogic weblogic myserver t3://127.0.0.1:7002

停weblogic应用的原理是 根据关键字(port=7006)找到weblogic进程,再通过kill命令杀掉进程。

1.修改startWebLogic.sh
在最后几行
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Dweblogic.Name=${SERVER_NAME} -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" weblogic.Server
的后面加上 port=7006.手工重启weblogic

2.stop.sh
i=0
for x in `ps -ef | grep java | grep port=7006|awk '{print $2}'`
do
kill -9 "$x"
let "i++"
done
if [ $i -eq 0 ]; then
echo "No Running WebLogic Instance Found!"
else
echo "Weblogic already shutdown successfully!"
fi

3.start.sh
nohup sh startWebLogic.sh  nohup.out &

4.restart.sh
cd /home/bea/user_projects/domains/mydomain
i=0
for x in `ps -ef | grep java | grep port=7006|awk '{print $2}'`
do
kill -9 "$x"
let "i++"
done
if [ $i -eq 0 ]; then
echo "No Running WebLogic Instance Found!"
else
echo "Weblogic already shutdown successfully!"
fi
nohup sh startWebLogic.sh  nohup.out &

如何使用ant的sshexec来后台运行一个shell
<target name="startapp">
<sshexec host="${host}"
username="${username}"
password="${password}"
trust="true"
command="nohup xx/xx/startWebLogic.sh &"/>
</target>

我用ant连ssh,执行启动weblogic的shell,但无论加了nohup和&,ant都是将信息打印在前台,只能通过再加上timeout="10000"属性,让登录,启动后的10秒后退出,unix后台的weblogic还在运行,但用timeout不是好的解决方案,因为build fail了。
请问如何让ant跑ssh远程调用shell可以让shell后台运行?
nohup ./startWebLogic.sh </dev/null >>nohup.out 2>&1 &

又产生别的问题
通过ant的sshexec组件调用重启脚本时,日志不往前台走,只走nohup.out. 需要在脚本最后添加tail -f nohup.out才行

你可能感兴趣的:(java,weblogic,ant,ssh,脚本)