#!/bin/sh
#定義一個目錄的字符串
workDir="/home/jiuddata/"
#判斷是否存在此目錄,存在就創建一個
if [ ! -x "$workDir" ]; then
mkdir "$workDir"
fi
##### 清空日誌 刪除之前的存日誌的目錄
rm -rf $workDir/log/
mkdir $workDir/log/
#進入到目錄
cd $workDir
#定義一個方法 方法名稱爲start_tomcat
start_tomcat(){
#方法中順便打印一句字符串
echo "starting tomacat....."
#執行啓動tomcat 並把日誌放到指定app.log的文件中去
#2>&1 2就是標準錯誤,1是標準輸出,那麼這條命令相當於把標準錯誤重定向到標準輸出麼
nohup /opt/tomcat/bin/catalina.sh start > $workDir/log/tomcat.log 2>&1 &
}
#定義一個方法start_backend
start_backend(){
#方法中順便打印一句字符串,表示正在執行這個方法
echo "starting backend....."
#執行啓動springBoot的jar命令 後臺運行 並把日誌放到指定文件夾中去
#2>&1 2就是標準錯誤,1是標準輸出,那麼這條命令相當於把標準錯誤重定向到標準輸出麼
nohup java -jar $workDir/backend_app/wiki-backend-web.jar > $workDir/log/app.log 2>&1 &
}
#定義一個方法pid_health_check $1是這個方法的參數,其他地方調用此方法傳入進來
pid_health_check(){
#定義一個linux的命令字符串 $1是這個方法的參數,其他地方調用此方法傳入進來
#這個命令解釋: 搜索linux中的進程 並且過濾掉-帶grep的那條
process_cnt=`ps -ef | grep $1 | grep -v grep | wc -l`
#表示執行上面定義的process_cnt命令
echo $process_cnt
#返回值-上面命令查詢出來的日誌的條數
return $?
}
#執行上面定義的方法
start_tomcat
#執行上面定義的方法
start_backend
#死循環 表示 1>0嗎 執行循環中的內容
while [[ 1 -gt 0 ]]
do
#方法中順便打印一句字符串
echo "check healthy of tomcat...."
#定義一個process_cnt參數接收-調用process_cnt的方法返回的值,傳入(參數1-方法名,參數2-搜索的進程名稱)
process_cnt=$(pid_health_check tomcat)
#if判斷-調用pid_health_check方法返回值中日誌的條數小於1 表示此tomcat進程已經被停了 then中重新執行啓動方法
if [[ $process_cnt -lt 1 ]]
then
start_tomcat
fi
echo "check healthy of wiki-backend...."
process_cnt=$(pid_health_check wiki-backend)
#if判斷-調用pid_health_check方法返回值中日誌的條數小於1 表示此wiki-backend的jar進程已經被停了 then中重新執行start_backend啓動方法
if [[ $process_cnt -lt 1 ]]
then
start_backend
fi
#表示等待1分鐘後重新執行死循環
sleep 1m
done
#!/bin/sh
workDir="/home/jiuddata/"
if [ ! -x "$workDir" ]; then
mkdir "$workDir"
fi
rm -rf $workDir/log/
mkdir $workDir/log/
cd $workDir
start_tomcat(){
echo "starting tomacat....."
nohup /opt/tomcat/bin/catalina.sh start > $workDir/log/tomcat.log 2>&1 &
}
start_backend(){
echo "starting backend....."
nohup java -jar $workDir/backend_app/wiki-backend-web.jar > $workDir/log/app.log 2>&1 &
}
pid_health_check(){
process_cnt=`ps -ef | grep $1 | grep -v grep | wc -l`
echo $process_cnt
return $?
}
start_tomcat
start_backend
while [[ 1 -gt 0 ]]
do
echo "check healthy of tomcat...."
process_cnt=$(pid_health_check tomcat)
if [[ $process_cnt -lt 1 ]]
then
start_tomcat
fi
echo "check healthy of wiki-backend...."
process_cnt=$(pid_health_check wiki-backend)
if [[ $process_cnt -lt 1 ]]
then
start_backend
fi
sleep 1m
done