#!/bin/bash
while true
do
#执行命令,重启tomcat
tomcat_home=/usr/local/tomcat
#停止tomcat变量
SHUTDOWN=$tomcat_home/bin/shutdown.sh
#启动tomcat变量
STARTTOMCAT=$tomcat_home/bin/startup.sh
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
#ps -ef |grep test | grep -v grep |awk '{print $2}'|xargs kill -9 -p
PID=`ps -ef |grep usr/local/tomcat/conf |grep -v grep | awk '{print $2}'`
echo $PID
if [ ! "$PID" ];then # 这里判断TOMCAT进程是否存在
echo "进程不存在,准备重新启动"
cd /usr/local/tomcat/logs
rm -rf *
echo 3 > /proc/sys/vm/drop_caches
$STARTTOMCAT
else
echo "进程存在继续监控~~~~~~~~~~~~~~~~~~~"
fi
sleep 30 #每隔30秒检查一次
done
不中断的在后台运行xx.sh:nohup ./xx.sh &(xx.sh的打印信息会输出到当前目录下的nohup.out中)
1.使用jobs可看到xx.sh处于running状态
2.使用ps -ef |grep xx.sh可查看到正在运行的xx.sh脚本进程
3.退出当前shell终端,再重新打开,使用jobs看不到正在运行的xx.sh,但使用ps -ef可以看到