1.利用shell監控某一進程,並在進程掛掉的時候自動重啓shell
#!/bin/bash
ps -ef | grep "zyfw-cps" | grep -v "grep" #檢測進程是否存在
if [ ! "$?" -eq 0 ];then #判斷上條命令的執行狀態,若檢測到存在,會返回0,若檢測在不存在,會返回1.bash
pid=`ps -ef | grep zyfw-cps | grep -v "grep" | awk '{print $2}'`
kill -9 $pid && echo "`date "+%Y-%m-%d %H:%M:%S"` kill $pid" >> /mnt/zyfw-cps/restart.logs
cd /mnt/zyfw-cps && ./startup.sh #執行預先寫好的啓動腳本
echo "`date "+%Y-%m-%d %H:%M:%S"` zyfw-cps have been restart!!!!" >>/mnt/zyfw-cps/restart.logs #將重啓信息寫進重啓日誌裏,方便往後故障排查。
ficurl
#!/bin/bash
code=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://10.172.13.26:8080/zyfw-cps/admin/index.jsp`
if [ ! "$code" -eq 200 ];then
pid=`ps -ef | grep zyfw-cps | grep -v "grep" | awk '{print $2}'`
kill -9 $pid && echo "`date "+%Y-%m-%d %H:%M:%S"` kill $pid" >> /mnt/zyfw-cps/restart.logs
cd /mnt/zyfw-cps && ./startup.sh
echo "`date "+%Y-%m-%d %H:%M:%S"` zyfw-cps have been restart!!!!" >> /mnt/zyfw-cps/restart.logs
fijsp