常見的linux上的服務重啟腳本


手寫linux上的重啟腳本,先把提綱列下

1.檢查進程是否存在

存在殺死

2.備份原來的包到指定目錄

3. 拉取新包,我這邊為了簡便,沒有從jenkins slave上拿

4.啟動命令

5.檢查是否進程起來了

 

#!/bin/bash

###path
JAVA=/usr/java/jdk1.8.0_211-amd64/bin/java
APP_HOME=/opt/88bugs
APPNAME=TestPlatform.jar
APP_PARAM="--spring.config.location=${APP_HOME}/application.properties"


####check wheather the port is running, if yes kill it
PID=`ps -ef | grep ${APP_HOME}/${APPNAME} | grep -v grep | awk '{print $2}'`
echo ${PID}

if test -z ${PID}
then 
	echo "進程沒有啟動!"

else 
	echo "will shutdown this process"
	kill -9 ${PID}
	sleep 2
fi


####backuop
mv ${APP_HOME}/${APPNAME} ${APP_HOME}/backup/${APPNAME}-date +%Y%m%d%H%M%S

####deploy the war package
cp -r /opt/${APPNAME}  ${APP_HOME}/${APPNAME}


##### start the process#
nohup ${JAVA} -jar ${APP_HOME}/${APPNAME} ${APP_PARAM}  > ${APP_HOME}/catalina.out 2>&1  &

afterPID=`ps -ef | grep ${APP_HOME}/${APPNAME} | grep -v grep | awk '{print $2}'`
echo ${afterPID}
sleep 10

if test -z ${afterPID}
then
	echo "部署失敗"
else 
	echo "部署成功"
fi

 

若腳本希望既可以停止服務,又可以重啟服務,

那么結構屢一下

配置環境,可供其他項目更改細節使用

獲取輸入,條件如果輸入的是a,則執行a的方法;如果是b則執行b的方法體,什么都不是,即不是指定的指令,輸出提示“您輸入的指令沒有對應的方法喲”

在上面的腳本上,更改些許即可

#!/bin/bash

#server 

JAVA=/usr/java/jdk1.8.0_211-amd64/bin/java
APP_HOME=/opt/88bugs
APP_NAME=TestPlatform.jar
APP_PARAM="--spring.config.location=${APP_HOME}/application.properties"

case $1 in
start)
PID=$(ps -ef | grep ${APP_NAME} | grep -v grep | awk '{print $2}')
if [ -z "$PID" ] ;then
        echo "start ${APP_NAME}"
        nohup ${JAVA} -jar ${APP_HOME}/${APP_NAME} ${APP_PARAM}  > ${APP_HOME}/catalina.out 2>&1  &
else
        echo "${APP_NAME} is running"
fi
;;
 
stop)
PID=$(ps -ef | grep ${APP_NAME} | grep -v grep | awk '{print $2}')
if [ -z "$PID" ] ;then
        echo "${APP_NAME} is not running"
else
        echo "stop ${APP_NAME}"
        kill -9 $PID
fi
;;
 
restart)
PID=$(ps -ef | grep ${APP_NAME} | grep -v grep | awk '{print $2}')
if [ -z "$PID" ] ;then
        echo "start ${APP_NAME}"
        nohup ${JAVA} -jar ${APP_HOME}/${APP_NAME} ${APP_PARAM}   > ${APP_HOME}/catalina.out 2>&1  &
else
        echo "stop ${APP_NAME}"
        kill -9 $PID
        echo "start ${APP_NAME}"
        nohup ${JAVA} -jar ${APP_HOME}/${APP_NAME} ${APP_PARAM}   > ${APP_HOME}/catalina.out 2>&1  &
fi
;;

backup)
PID=$(ps -ef | grep ${APP_NAME} | grep -v grep | awk '{print $2}')
if [ -z "$PID" ] ;then
        echo "${APP_NAME} is not running,will backup files"
	mv ${APP_HOME}/${APP_NAME} ${APP_HOME}/backup/${APP_NAME}-$(date +%Y%m%d%H%M%S)       
else
        echo "stop ${APP_NAME}"
        kill -9 $PID
        echo "will backup files..."
        mv ${APP_HOME}/${APP_NAME} ${APP_HOME}/backup/${APP_NAME}-$(date +%Y%m%d%H%M%S)
fi
;;
 
logs)
tail -f ${APP_HOME}/catalina.out
;;
 
status)
PID=$(ps -ef | grep ${APP_NAME} | grep -v grep | awk '{print $2}')
if [ -z "$PID" ] ;then
        echo "${APP_NAME} is not running"
else
        echo "${APP_NAME} is running, pid $PID"
fi
;;
 
*)
echo "您輸入的指令沒有對應的方法喲"
 
esac 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM