生產環境指令碼變更tomcat應用後啟動失敗記錄
之前部門開發在執行我寫的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