1. 程式人生 > >生產環境指令碼變更tomcat應用後啟動失敗記錄

生產環境指令碼變更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