shell脚本启动,tomcat意外退出的问题

今天早上遇到一个问题,在这里记录一下,使用shell进行启动tomcat的时候,在shell中存在了这么一段

$TOMCAT_PATH/bin/startup.sh
tail -f $TOMCAT_PATH/logs/catalina.out

这一段脚本所执行的作用是:启动tomcat,然后打印日志
这个时候这个脚本对linux系统来说是一个进程,它有一个进程组pgid ,然后启动的tomcat的pid是属于这个pgid的,所以要在执行之后简单的做法是ctrl+c 让tomcat的pgid是它自己的pid。
SIGINT与ctrl+c是关联的


感谢这个大大,灰常详细

###########################################
#!/bin/bash
#Shell command for deploy tomcat

#临时文件路径
TEMP_PATH=/home/temp
TEMP_COM_PATH=$TEMP_PATH/com
TEMP_MAPPING_PATH=$TEMP_PATH/mappings

#进程标志名
FLAG_NAME=tomcat

#tomcat的路径
TOMCAT_PATH=/home/tomcat
WEBAPP_PATH=$TOMCAT_PATH/webapps
CACHE_PATH=$TOMCAT_PATH/work/Catalina
CLASSES_PATH=$WEBAPP_PATH/toubao/WEB-INF/classes

echo "CLASSES_PATH : $CLASSES_PATH"


#检查是否有30分钟内上传的文件夹
EFILES=`find $TEMP_PATH -mmin -30|grep zip`
if [  x"$EFILES" = x"" ];
then
  echo "ERROR:There is no zip file for less than 30 minutes!!!"
  exit 1
fi

#删除原来解压的文件
for file in `find $TEMP_PATH -type d`
do
  if test -d $file;
  then
   if [ $TEMP_PATH != $file ];
    then
			rm -rf $file
        fi
  fi
done


#把30分钟之内上传的文件夹解压
for file in  `find $TEMP_PATH -mmin -30|grep zip`
do
   echo "unzip -oq $file"
   unzip -oq $file -d $TEMP_PATH
done





#判断是否有这两个文件夹目录,没有的话不做操作
if [[ -d $TEMP_COM_PATH ]] || [[ -d $TEMP_MAPPING_PATH ]];
then 
   TOMCAT_JK_PID=`ps -ef|grep $FLAG_NAME|head -n 1|awk '{print $2}'`

	kill -9 $TOMCAT_JK_PID

	if [[ $? == 0 ]];
	then
		echo "the process does not exist"
		#exit 2
	fi
	echo "kill $FLAG_NAME process : $TOMCAT_JK_PID"

	rm -rf $CACHE_PATH
	echo "delete the caches:  rm -rf $CACHEPATH"
fi

FLAG=0
# 假如com文件夹存在 
if [ -d $TEMP_COM_PATH ];
then
  echo "**$TEMP_COM_PATH** The directory exists!!!"
  echo "$CLASSES_PATH/com"  
  rm -rf $CLASSES_PATH/com
  cp -rf $TEMP_COM_PATH $CLASSES_PATH
  FLAG=1
fi
# 假如mappings文件夹存在 
if [ -d $TEMP_MAPPING_PATH ];
then 
   echo "**$TEMP_MAPPING_PATH** The directory exists!!!"
   echo "$CLASSES_PATH/mappings"  
   rm -rf $CLASSES_PATH/mappings
   cp -rf $TEMP_MAPPING_PATH $CLASSES_PATH
   FLAG=1
fi


if [[ $FLAG == 1 ]];
then
   $TOMCAT_PATH/bin/startup.sh
   tail -f $TOMCAT_PATH/logs/catalina.out
fi

if [[ $FLAG == 0 ]];
then
   echo "do nothing"
fi



#tomcat-JK
#ARR_FILES=$(ls /home -l | awk '/^d/{print $NF}')
#echo $ARR_FILES


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值