之前部门开发在执行我写的tomcat变更脚本后经常会出现第二天发现tomcat服务没有起来的现象,今天配合部门进行了问题排查。
脚本如下:
$ cat uphbase.sh
w=`date +%Y%m%d%H%M%S`
newfiledir=/data/webApp/war_pacakage
tomcatdir=/data/webApp/tomcat-hbaseserv
backupdir=/data/webApp/tomcat-hbaseserv/backup
appname=hbaseserv
if [ -e "$newfiledir/$appname.war" ]; then
echo "war archive: $appname.war"
else
echo "war archive $appname.war not exists"
exit -1
fi
echo "tomcat home: $tomcatdir"
echo "backup path: $backupdir"
echo 'try to stop tomcat...'
pid=`ps -ef | grep tomcat | grep hbaseserv | awk '{print $2}'`
if [ -n $pid ];then
echo "tomcat pid: $pid";
kill -9 $pid;
fi
echo 'stop tomcat finished...'
echo 'backup old archive...'
if [ -f "$tomcatdir/webapps/$appname.war" ];then
mv -v "$tomcatdir/webapps/$appname.war" "$backupdir/$appname.war-$now"
fi
rm -rf $tomcatdir/webapps/$appname*
echo "copy $appname.war archive to webapps..."
cp -v "$newfiledir/$appname.war" $tomcatdir/webapps
echo 'startup tomcat...'
执行脚本
sh $tomcatdir/bin/startup.sh
听开发说他在查看了半天日志依然没有问题,结合日志信息发现把窗口关闭后服务才停止。
解决办法:
方法一:
1)、当执行完脚本后,执行Cotrl+C退出日志的查看,不要直接关闭窗口
方法二:
2)、在 sh $tomcatdir/bin/startup.sh 这一行前添加 set +m
参考文章:
https://blog.csdn.net/zhouyannian1988/article/details/53508689
https://www.cnblogs.com/liduanjun/p/3536996.html