话不多说直接上脚本,比较简单基本都能看懂,无非是启动应用前后加了一些判断而已。

#!/bin/bash # # SCRIPT:    app_operation.sh # DATE:      2020/03/13  # DESC:      设置SDWAN应用启停 # AUTHOR:    Mright # VERSION:   V1.0 # V1.0:      创建后台应用启停脚本 # *****************************BEGIN ARGUS************************* set -o pipefail source ~/.bash_profile SERNAME=$1 INPUT=$2 SERNAME=${SERNAME:="NULL"} OPER=${INPUT:="stat"} SERPID="null" JARDIR="${HOME}" SCRIPTDIR="${JARDIR}" TMPPID="${JARDIR}" LOGDIR="/tmp" LOGNAME="/tmp/app_operation_$(hostname).log" APPLOGNAME="${JARDIR}/logs/${INPUT}.log" APPINFOFILE="${HOME}/version.info" CURRENTID=$(cat ${APPINFOFILE}|grep "${SERNAME}_latest"|awk -F ':' '{print $2}')  # 网关应用名 ZUULAPPNAME="example-sdwan-api-gateway-${CURRENTID}.jar" # SITE应用名 SITEAPPNAME="example-sdwan-nw-site-${CURRENTID}.jar" # DEVICE应用名 DEVICEAPPNAME="example-sdwan-nw-device-${CURRENTID}.jar" BASEPATH="${HOME}" ZUULAPPPATH="${BASEPATH}/example-sdwan-api-gateway" SITEAPPPATH="${BASEPATH}/example-sdwan-nw-site" DEVICEAPPPATH="${BASEPATH}/example-sdwan-nw-device" # *****************************END ARGUS************************* # *****************************DEFAULTS USEAGE******************* function defaults(){    echo "eg. sh app_operation.sh <site|zuul|device> <stat|start|stop|restart>" }  # *****************************DEFAULTS USEAGE******************* function checkInput(){     [ ! -d ${JARDIR} ]&& mkdir -p ${JARDIR}     #[ ! -d ${SCRIPTDIR} ]&& mkdir -p ${SCRIPTDIR}     if [ ${SERNAME} == "NULL" ];then         echo "$(log_error)所操作服务名不能为空,请重新输入!"         defaults         exit 10     elif [ ${SERNAME} != "site" -a ${SERNAME} != "eureka" -a ${SERNAME} != "zuul" -a ${SERNAME} != "device" ];then         echo "$(log_error)所输入服务名错误,请重新输入!"         defaults         exit 11     fi } # ******************** FUNCTION log_info BEGIN ************************** function log_info(){ 	echo "[$(date +'%Y-%m-%d %H:%M:%S')][INFO]" } # ******************** FUNCTION log_info END *************************** # ******************** FUNCTION log_info BEGIN ************************** function log_error(){ 	echo "[$(date +'%Y-%m-%d %H:%M:%S')][ERROR]" } # ******************** FUNCTION log_info END *************************** function getPid(){ 	case ${SERNAME} in 		"zuul") 	   declare -a FLAG 	   count=0 	   PATTERN=$(echo "${ZUULAPPNAME}"|grep -o ".*[^0-9.jar]"|sed -r "s/-$//g") 	   SERPID=$(ps -ef|grep "${PATTERN}"|grep -v "grep"|awk '{print $2}') 	   #SERPID=${SERPID:=110} 	   for pro in ${SERPID};do 	      FLAG[$count]=$pro 	      let count++ 	   done 	   if [ ${#FLAG[*]} -gt 0 ];then 	       echo ${SERPID}> ${ZUULAPPPATH}/${SERNAME}.pid 	   else 	   		 [ -f ${ZUULAPPPATH}/${SERNAME}.pid ]&&{ rm -f ${ZUULAPPPATH}/${SERNAME}.pid;} 	   fi 	   ;; 	   "device") 	   declare -a FLAG 	   count=0 	   PATTERN=$(echo "${DEVICEAPPNAME}"|grep -o ".*[^0-9.jar]"|sed -r "s/-$//g") 	   SERPID=$(ps -ef|grep "${PATTERN}"|grep -v "grep"|awk '{print $2}') 	    	   #SERPID=${SERPID:=110} 	   for pro in ${SERPID};do 	      FLAG[$count]=$pro 	      let count++ 	   done 	   if [ ${#FLAG[*]} -gt 0 ];then 	       echo ${SERPID}> ${DEVICEAPPPATH}/${SERNAME}.pid  	   else 	   		 [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ]&&{ rm -f ${DEVICEAPPPATH}/${SERNAME}.pid;} 	   fi 	   ;; 	   "site") 	   declare -a FLAG 	   count=0 	   PATTERN=$(echo "${SITEAPPNAME}"|grep -o ".*[^0-9.jar]"|sed -r "s/-$//g") 	   SERPID=$(ps -ef|grep "${PATTERN}"|grep -v "grep"|awk '{print $2}') 	    	   #SERPID=${SERPID:=110} 	   for pro in ${SERPID};do 	      FLAG[$count]=$pro 	      let count++ 	   done 	   if [ ${#FLAG[*]} -gt 0 ];then 	       echo ${SERPID}> ${SITEAPPPATH}/${SERNAME}.pid  	   else 	   		 [ -f ${SITEAPPPATH}/${SERNAME}.pid ]&&{ rm -f ${SITEAPPPATH}/${SERNAME}.pid;} 	   fi 	   ;; 	   "eureka") 	   	echo "该应用暂未记录" 	   ;; 	   *) 	   	defaults 	   	;; 	esac 	    } function operation(){ 	case ${SERNAME} in         "zuul")            case ${OPER} in            		"stat") 		           if [ -f ${ZUULAPPPATH}/${SERNAME}.pid ];then 		              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${ZUULAPPPATH}/${SERNAME}.pid)" 		           else 		              echo "$(log_info)${SERNAME} 应用未启动!"  		           fi 		           ;; 		           "start") 		           	if [ -f ${ZUULAPPPATH}/${SERNAME}.pid ];then 			              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${ZUULAPPPATH}/${SERNAME}.pid)" 			          else 			          		cd ${ZUULAPPPATH} 			              echo "$(log_info)${SERNAME} 应用准备启动... "			               			              nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${ZUULAPPPATH}/${ZUULAPPNAME} &>/dev/null &			               			              # 获取应用进程ID写入pid文件 			              sleep 10 			              getPid ${SERNAME} 			              [ ! -f ${ZUULAPPPATH}/${SERNAME}.pid ]&& echo "$(log_error)${SERNAME}启动失败!"&&exit 12|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}."			          			          fi  			         ;; 			         "restart") 			         	if [ -f ${ZUULAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${ZUULAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              [ $? -eq 0 ]&& rm -f ${ZUULAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;} 		                echo "$(log_info)${SERNAME}准备启动应用..."		                 		                #nohup java -jar ${ZUULAPPPATH}/${ZUULAPPNAME} &>/dev/null & 		                cd ${ZUULAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${ZUULAPPPATH}/${ZUULAPPNAME} &>/dev/null &	                 		                sleep 10 		                getPid ${SERNAME} 		              [ ! -f ${ZUULAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            else 		               echo "$(log_info)${SERNAME}准备启动应用..."		                		               cd ${ZUULAPPPATH}	 		               nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${ZUULAPPPATH}/${ZUULAPPNAME} &>/dev/null &			                		               sleep 10 		               getPid ${SERNAME} 		               [ ! -f ${ZUULAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            fi 			        ;; 			        "stop") 			        	 			         	if [ -f ${ZUULAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${ZUULAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              	[ $? -eq 0 ]&& rm -f ${ZUULAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;}		                		            else 		               echo "$(log_info)${SERNAME}已经停止..."		                		            fi 			        ;; 		       esac              ;;         "site")            case ${OPER} in            		"stat") 		           if [ -f ${SITEAPPPATH}/${SERNAME}.pid ];then 		              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${SITEAPPPATH}/${SERNAME}.pid)" 		           else 		              echo "$(log_info)${SERNAME} 应用未启动!"  		           fi 		           ;; 		           "start") 		           	if [ -f ${SITEAPPPATH}/${SERNAME}.pid ];then 			              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${SITEAPPPATH}/${SERNAME}.pid)" 			          else 			              echo "$(log_info)${SERNAME} 应用准备启动... " 			              cd ${SITEAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${SITEAPPPATH}/${SITEAPPNAME} &>/dev/null & 			              sleep 10 			              # 获取应用进程ID写入pid文件 			              getPid ${SERNAME} 			              [ ! -f ${SITEAPPPATH}/${SERNAME}.pid ]&& echo "$(log_error)${SERNAME}启动失败!"&&exit 12|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}."			          			          fi  			         ;; 			         "restart") 			         	if [ -f ${SITEAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${SITEAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              	[ $? -eq 0 ]&& rm -f ${SITEAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;} 		                echo "$(log_info)${SERNAME}准备启动应用..." 		                cd ${SITEAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${SITEAPPPATH}/${SITEAPPNAME} &>/dev/null & 		                sleep 10 		                getPid ${SERNAME} 		              	[ ! -f ${SITEAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            else 		               echo "$(log_info)${SERNAME}准备启动应用..." 		               cd ${SITEAPPPATH}	 		               nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${SITEAPPPATH}/${SITEAPPNAME} &>/dev/null & 		               sleep 10 		               getPid ${SERNAME} 		               [ ! -f ${SITEAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            fi 			        ;; 			        "stop") 			         	if [ -f ${SITEAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${SITEAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              	[ $? -eq 0 ]&& rm -f ${SITEAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;}		                		            else 		               echo "$(log_info)${SERNAME}已经停止..."		                		            fi 			        ;; 		       esac            ;;         "device")             case ${OPER} in            		"stat") 		           if [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ];then 		              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${DEVICEAPPPATH}/${SERNAME}.pid)" 		           else 		              echo "$(log_info)${SERNAME} 应用未启动!"  		           fi 		           ;; 		           "start") 		           	if [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ];then 			              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${DEVICEAPPPATH}/${SERNAME}.pid)" 			          else 			              echo "$(log_info)${SERNAME} 应用准备启动... " 			              cd ${DEVICEAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${DEVICEAPPPATH}/${DEVICEAPPNAME} &>/dev/null & 		                sleep 10 			              # 获取应用进程ID写入pid文件 			              getPid ${SERNAME} 			              [ ! -f ${DEVICEAPPPATH}/${SERNAME}.pid ]&& echo "$(log_error)${SERNAME}启动失败!"&&exit 12|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}."			          			          fi  			         ;; 			         "restart") 			         	if [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${DEVICEAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              [ $? -eq 0 ]&& rm -f ${DEVICEAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;} 		                echo "$(log_info)${SERNAME}准备启动应用..." 		                cd ${DEVICEAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${DEVICEAPPPATH}/${DEVICEAPPNAME} &>/dev/null & 		                sleep 10 		                getPid ${SERNAME} 		              [ ! -f ${DEVICEAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            else 		               echo "$(log_info)${SERNAME}准备启动应用..." 		               cd ${DEVICEAPPPATH}	 		               nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${DEVICEAPPPATH}/${DEVICEAPPNAME} &>/dev/null & 		               sleep 10 		               getPid ${SERNAME} 		               [ ! -f ${DEVICEAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            fi 			        ;; 			        "stop") 			         	if [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${DEVICEAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              	[ $? -eq 0 ]&& rm -f ${DEVICEAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;}		                		            else 		               echo "$(log_info)${SERNAME}已经停止..."		                		            fi 			        ;; 		       esac           ;;         "eureka")             echo ""           ;;         *)            echo "$(log_error)输入错误,请重新输入!"            defaults            exit 12     esac }  function main(){     case $OPER in         "stat")            checkInput            getPid ${SERNAME}            operation ${SERNAME}          ;;         "start")            checkInput            getPid ${SERNAME}            operation ${SERNAME}            ;;         "stop")             checkInput 	          getPid ${SERNAME} 	          operation ${SERNAME}           ;;         "restart")             checkInput 	          getPid ${SERNAME} 	          operation ${SERNAME}          ;;         *)            echo "$(log_error)输入错误,请重新输入!"            defaults            exit 12     esac } main|tee -a ${LOGNAME}

话不多说直接上脚本,比较简单基本都能看懂,无非是启动应用前后加了一些判断而已。

#!/bin/bash # # SCRIPT:    app_operation.sh # DATE:      2020/03/13  # DESC:      设置SDWAN应用启停 # AUTHOR:    Mright # VERSION:   V1.0 # V1.0:      创建后台应用启停脚本 # *****************************BEGIN ARGUS************************* set -o pipefail source ~/.bash_profile SERNAME=$1 INPUT=$2 SERNAME=${SERNAME:="NULL"} OPER=${INPUT:="stat"} SERPID="null" JARDIR="${HOME}" SCRIPTDIR="${JARDIR}" TMPPID="${JARDIR}" LOGDIR="/tmp" LOGNAME="/tmp/app_operation_$(hostname).log" APPLOGNAME="${JARDIR}/logs/${INPUT}.log" APPINFOFILE="${HOME}/version.info" CURRENTID=$(cat ${APPINFOFILE}|grep "${SERNAME}_latest"|awk -F ':' '{print $2}')  # 网关应用名 ZUULAPPNAME="example-sdwan-api-gateway-${CURRENTID}.jar" # SITE应用名 SITEAPPNAME="example-sdwan-nw-site-${CURRENTID}.jar" # DEVICE应用名 DEVICEAPPNAME="example-sdwan-nw-device-${CURRENTID}.jar" BASEPATH="${HOME}" ZUULAPPPATH="${BASEPATH}/example-sdwan-api-gateway" SITEAPPPATH="${BASEPATH}/example-sdwan-nw-site" DEVICEAPPPATH="${BASEPATH}/example-sdwan-nw-device" # *****************************END ARGUS************************* # *****************************DEFAULTS USEAGE******************* function defaults(){    echo "eg. sh app_operation.sh <site|zuul|device> <stat|start|stop|restart>" }  # *****************************DEFAULTS USEAGE******************* function checkInput(){     [ ! -d ${JARDIR} ]&& mkdir -p ${JARDIR}     #[ ! -d ${SCRIPTDIR} ]&& mkdir -p ${SCRIPTDIR}     if [ ${SERNAME} == "NULL" ];then         echo "$(log_error)所操作服务名不能为空,请重新输入!"         defaults         exit 10     elif [ ${SERNAME} != "site" -a ${SERNAME} != "eureka" -a ${SERNAME} != "zuul" -a ${SERNAME} != "device" ];then         echo "$(log_error)所输入服务名错误,请重新输入!"         defaults         exit 11     fi } # ******************** FUNCTION log_info BEGIN ************************** function log_info(){ 	echo "[$(date +'%Y-%m-%d %H:%M:%S')][INFO]" } # ******************** FUNCTION log_info END *************************** # ******************** FUNCTION log_info BEGIN ************************** function log_error(){ 	echo "[$(date +'%Y-%m-%d %H:%M:%S')][ERROR]" } # ******************** FUNCTION log_info END *************************** function getPid(){ 	case ${SERNAME} in 		"zuul") 	   declare -a FLAG 	   count=0 	   PATTERN=$(echo "${ZUULAPPNAME}"|grep -o ".*[^0-9.jar]"|sed -r "s/-$//g") 	   SERPID=$(ps -ef|grep "${PATTERN}"|grep -v "grep"|awk '{print $2}') 	   #SERPID=${SERPID:=110} 	   for pro in ${SERPID};do 	      FLAG[$count]=$pro 	      let count++ 	   done 	   if [ ${#FLAG[*]} -gt 0 ];then 	       echo ${SERPID}> ${ZUULAPPPATH}/${SERNAME}.pid 	   else 	   		 [ -f ${ZUULAPPPATH}/${SERNAME}.pid ]&&{ rm -f ${ZUULAPPPATH}/${SERNAME}.pid;} 	   fi 	   ;; 	   "device") 	   declare -a FLAG 	   count=0 	   PATTERN=$(echo "${DEVICEAPPNAME}"|grep -o ".*[^0-9.jar]"|sed -r "s/-$//g") 	   SERPID=$(ps -ef|grep "${PATTERN}"|grep -v "grep"|awk '{print $2}') 	    	   #SERPID=${SERPID:=110} 	   for pro in ${SERPID};do 	      FLAG[$count]=$pro 	      let count++ 	   done 	   if [ ${#FLAG[*]} -gt 0 ];then 	       echo ${SERPID}> ${DEVICEAPPPATH}/${SERNAME}.pid  	   else 	   		 [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ]&&{ rm -f ${DEVICEAPPPATH}/${SERNAME}.pid;} 	   fi 	   ;; 	   "site") 	   declare -a FLAG 	   count=0 	   PATTERN=$(echo "${SITEAPPNAME}"|grep -o ".*[^0-9.jar]"|sed -r "s/-$//g") 	   SERPID=$(ps -ef|grep "${PATTERN}"|grep -v "grep"|awk '{print $2}') 	    	   #SERPID=${SERPID:=110} 	   for pro in ${SERPID};do 	      FLAG[$count]=$pro 	      let count++ 	   done 	   if [ ${#FLAG[*]} -gt 0 ];then 	       echo ${SERPID}> ${SITEAPPPATH}/${SERNAME}.pid  	   else 	   		 [ -f ${SITEAPPPATH}/${SERNAME}.pid ]&&{ rm -f ${SITEAPPPATH}/${SERNAME}.pid;} 	   fi 	   ;; 	   "eureka") 	   	echo "该应用暂未记录" 	   ;; 	   *) 	   	defaults 	   	;; 	esac 	    } function operation(){ 	case ${SERNAME} in         "zuul")            case ${OPER} in            		"stat") 		           if [ -f ${ZUULAPPPATH}/${SERNAME}.pid ];then 		              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${ZUULAPPPATH}/${SERNAME}.pid)" 		           else 		              echo "$(log_info)${SERNAME} 应用未启动!"  		           fi 		           ;; 		           "start") 		           	if [ -f ${ZUULAPPPATH}/${SERNAME}.pid ];then 			              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${ZUULAPPPATH}/${SERNAME}.pid)" 			          else 			          		cd ${ZUULAPPPATH} 			              echo "$(log_info)${SERNAME} 应用准备启动... "			               			              nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${ZUULAPPPATH}/${ZUULAPPNAME} &>/dev/null &			               			              # 获取应用进程ID写入pid文件 			              sleep 10 			              getPid ${SERNAME} 			              [ ! -f ${ZUULAPPPATH}/${SERNAME}.pid ]&& echo "$(log_error)${SERNAME}启动失败!"&&exit 12|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}."			          			          fi  			         ;; 			         "restart") 			         	if [ -f ${ZUULAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${ZUULAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              [ $? -eq 0 ]&& rm -f ${ZUULAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;} 		                echo "$(log_info)${SERNAME}准备启动应用..."		                 		                #nohup java -jar ${ZUULAPPPATH}/${ZUULAPPNAME} &>/dev/null & 		                cd ${ZUULAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${ZUULAPPPATH}/${ZUULAPPNAME} &>/dev/null &	                 		                sleep 10 		                getPid ${SERNAME} 		              [ ! -f ${ZUULAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            else 		               echo "$(log_info)${SERNAME}准备启动应用..."		                		               cd ${ZUULAPPPATH}	 		               nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${ZUULAPPPATH}/${ZUULAPPNAME} &>/dev/null &			                		               sleep 10 		               getPid ${SERNAME} 		               [ ! -f ${ZUULAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            fi 			        ;; 			        "stop") 			        	 			         	if [ -f ${ZUULAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${ZUULAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              	[ $? -eq 0 ]&& rm -f ${ZUULAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;}		                		            else 		               echo "$(log_info)${SERNAME}已经停止..."		                		            fi 			        ;; 		       esac              ;;         "site")            case ${OPER} in            		"stat") 		           if [ -f ${SITEAPPPATH}/${SERNAME}.pid ];then 		              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${SITEAPPPATH}/${SERNAME}.pid)" 		           else 		              echo "$(log_info)${SERNAME} 应用未启动!"  		           fi 		           ;; 		           "start") 		           	if [ -f ${SITEAPPPATH}/${SERNAME}.pid ];then 			              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${SITEAPPPATH}/${SERNAME}.pid)" 			          else 			              echo "$(log_info)${SERNAME} 应用准备启动... " 			              cd ${SITEAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${SITEAPPPATH}/${SITEAPPNAME} &>/dev/null & 			              sleep 10 			              # 获取应用进程ID写入pid文件 			              getPid ${SERNAME} 			              [ ! -f ${SITEAPPPATH}/${SERNAME}.pid ]&& echo "$(log_error)${SERNAME}启动失败!"&&exit 12|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}."			          			          fi  			         ;; 			         "restart") 			         	if [ -f ${SITEAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${SITEAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              	[ $? -eq 0 ]&& rm -f ${SITEAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;} 		                echo "$(log_info)${SERNAME}准备启动应用..." 		                cd ${SITEAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${SITEAPPPATH}/${SITEAPPNAME} &>/dev/null & 		                sleep 10 		                getPid ${SERNAME} 		              	[ ! -f ${SITEAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            else 		               echo "$(log_info)${SERNAME}准备启动应用..." 		               cd ${SITEAPPPATH}	 		               nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${SITEAPPPATH}/${SITEAPPNAME} &>/dev/null & 		               sleep 10 		               getPid ${SERNAME} 		               [ ! -f ${SITEAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            fi 			        ;; 			        "stop") 			         	if [ -f ${SITEAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${SITEAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              	[ $? -eq 0 ]&& rm -f ${SITEAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;}		                		            else 		               echo "$(log_info)${SERNAME}已经停止..."		                		            fi 			        ;; 		       esac            ;;         "device")             case ${OPER} in            		"stat") 		           if [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ];then 		              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${DEVICEAPPPATH}/${SERNAME}.pid)" 		           else 		              echo "$(log_info)${SERNAME} 应用未启动!"  		           fi 		           ;; 		           "start") 		           	if [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ];then 			              echo "$(log_info)${SERNAME} 应用已启动,进程ID为$(cat ${DEVICEAPPPATH}/${SERNAME}.pid)" 			          else 			              echo "$(log_info)${SERNAME} 应用准备启动... " 			              cd ${DEVICEAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${DEVICEAPPPATH}/${DEVICEAPPNAME} &>/dev/null & 		                sleep 10 			              # 获取应用进程ID写入pid文件 			              getPid ${SERNAME} 			              [ ! -f ${DEVICEAPPPATH}/${SERNAME}.pid ]&& echo "$(log_error)${SERNAME}启动失败!"&&exit 12|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}."			          			          fi  			         ;; 			         "restart") 			         	if [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${DEVICEAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              [ $? -eq 0 ]&& rm -f ${DEVICEAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;} 		                echo "$(log_info)${SERNAME}准备启动应用..." 		                cd ${DEVICEAPPPATH}	 		                nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${DEVICEAPPPATH}/${DEVICEAPPNAME} &>/dev/null & 		                sleep 10 		                getPid ${SERNAME} 		              [ ! -f ${DEVICEAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            else 		               echo "$(log_info)${SERNAME}准备启动应用..." 		               cd ${DEVICEAPPPATH}	 		               nohup java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-1.properties ${DEVICEAPPPATH}/${DEVICEAPPNAME} &>/dev/null & 		               sleep 10 		               getPid ${SERNAME} 		               [ ! -f ${DEVICEAPPPATH}/${SERNAME}.pid ]&&{ echo "$(log_error)${SERNAME}启动失败!"&&exit 12;}|| echo "$(log_info)${SERNAME}启动成功,进程ID为${SERPID}." 		            fi 			        ;; 			        "stop") 			         	if [ -f ${DEVICEAPPPATH}/${SERNAME}.pid ];then 		                echo "$(log_info)${SERNAME}准备停止应用..." 		                kill $(cat ${DEVICEAPPPATH}/${SERNAME}.pid) 		                sleep 3 		              	[ $? -eq 0 ]&& rm -f ${DEVICEAPPPATH}/${SERNAME}.pid &&echo "$(log_info)${SERNAME}已停止。"||{ echo "$(log_error)${SERNAME}停止失败。"&&exit 13;}		                		            else 		               echo "$(log_info)${SERNAME}已经停止..."		                		            fi 			        ;; 		       esac           ;;         "eureka")             echo ""           ;;         *)            echo "$(log_error)输入错误,请重新输入!"            defaults            exit 12     esac }  function main(){     case $OPER in         "stat")            checkInput            getPid ${SERNAME}            operation ${SERNAME}          ;;         "start")            checkInput            getPid ${SERNAME}            operation ${SERNAME}            ;;         "stop")             checkInput 	          getPid ${SERNAME} 	          operation ${SERNAME}           ;;         "restart")             checkInput 	          getPid ${SERNAME} 	          operation ${SERNAME}          ;;         *)            echo "$(log_error)输入错误,请重新输入!"            defaults            exit 12     esac } main|tee -a ${LOGNAME}

  • 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如未注明可能来源未知,如有侵权请联系管理员删除。

发表回复

后才能评论