1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
| #!/bin/bash OPERATE=$1 APP_NAME=$2 SYSTEM=`uname` RUNNING="false"; FILE_PATH=${APP_NAME} # 处理相对路径 if [ ${FILE_PATH:0:1} != "/" ]; then FILE_PATH="`pwd`/${FILE_PATH}" fi # 检查应用是否在运行 function check() { echo "check ${FILE_PATH} running status..." if [ "${SYSTEM}" == 'Linux' ]; then tpid=`ps -ef|grep -n " java.* ${FILE_PATH}"|grep -v grep|grep -v kill|awk '{print $2}'` else tpid=`ps -ef|grep -n " java.* ${FILE_PATH}"|grep -v grep|grep -v kill|awk '{print $3}'` fi if [ ${tpid} ]; then echo "App ${FILE_PATH} is running." RUNNING="true" else echo "App ${FILE_PATH} is NOT running." RUNNING="false" fi } # 启动程序 function start() { # 用文件名作为 APP_NAME APP_NAME=${FILE_PATH##*/} APP_NAME=${APP_NAME%%.*} # 检查是否已经存在 check if [ ${RUNNING} == "true" ]; then echo "App already running!" else echo "start..." nohup java -jar -Dconfiguration.loggers.root.level=debug ${FILE_PATH} --name=${APP_NAME} --spring.profiles.active=prod --server.port=8991 > /dev/null 2>&1 & check echo "Start success!" fi } # 停止程序 function stop() { if [ ${SYSTEM} == 'Linux' ]; then tpid=`ps -ef|grep -n " java.* ${FILE_PATH}"|grep -v grep|grep -v kill|awk '{print $2}'` else tpid=`ps -ef|grep -n " java.* ${FILE_PATH}"|grep -v grep|grep -v kill|awk '{print $3}'` fi if [ ${tpid} ]; then echo 'Stop Process...' kill -15 ${tpid} # 检查程序是否停止成功 for ((i=0; i<10; ++i)) do sleep 1 if [ ${SYSTEM} == 'Linux' ]; then tpid=`ps -ef|grep -n " java.* ${FILE_PATH}"|grep -v grep|grep -v kill|awk '{print $2}'` else tpid=`ps -ef|grep -n " java.* ${FILE_PATH}"|grep -v grep|grep -v kill|awk '{print $3}'` fi if [ ${tpid} ]; then echo -e ".\c" else echo 'Stop Success!' break; fi done # 强制杀死进程 if [ ${SYSTEM} == 'Linux' ]; then tpid=`ps -ef|grep -n " java.* ${FILE_PATH}"|grep -v grep|grep -v kill|awk '{print $2}'` else tpid=`ps -ef|grep -n " java.* ${FILE_PATH}"|grep -v grep|grep -v kill|awk '{print $3}'` fi if [ ${tpid} ]; then echo 'Kill Process!' kill -9 ${tpid} fi else echo 'App already stop!' fi } function list () { if [ ${APP_NAME} == "all" ]; then if [ ${SYSTEM} == 'Linux' ]; then ps -ef | grep -n "java.*--name="|grep -v grep|grep -v kill|awk '{printf $2"\t"$8"\t"} {split($11,b,"=");print b[2]}' res=`ps -ef | grep -n "java.*--name="|grep -v grep|grep -v kill|awk '{printf $2"\t"$8"\t"} {split($11,b,"=");print b[2]}' ` else ps -ef | grep -n "java.*--name="|grep -v grep|grep -v kill|awk '{printf $3"\t"$9"\t"} {split($12,b,"=");print b[2]}' res=`ps -ef | grep -n "java.*--name="|grep -v grep|grep -v kill|awk '{printf $3"\t"$9"\t"} {split($12,b,"=");print b[2]}' ` fi else if [ ${SYSTEM} == 'Linux' ]; then ps -ef | grep -n "java.*--name=${APP_NAME}$"|grep -v grep|grep -v kill|awk '{printf $2"\t"$8"\t"} {split($11,b,"=");print b[2]}' res=`ps -ef | grep -n "java.*--name=${APP_NAME}$"|grep -v grep|grep -v kill|awk '{printf $2"\t"$8"\t"} {split($11,b,"=");print b[2]}' ` else ps -ef | grep -n "java.*--name=${APP_NAME}$"|grep -v grep|grep -v kill|awk '{printf $3"\t"$9"\t"} {split($12,b,"=");print b[2]}' res=`ps -ef | grep -n "java.*--name=${APP_NAME}$"|grep -v grep|grep -v kill|awk '{printf $3"\t"$9"\t"} {split($12,b,"=");print b[2]}' ` fi fi if [ -z "$res" ]; then echo "None app running!" fi } # 参数检查 if [ -z ${OPERATE} ] || [ -z ${APP_NAME} ];then if [ -z ${OPERATE} ]; then echo "OPERATE can not be null." else echo "APP_NAME can not be null." fi else # 启动程序 if [ ${OPERATE} == "start" ]; then start # 停止程序 elif [ ${OPERATE} == "stop" ]; then stop # 重启程序 elif [ ${OPERATE} == "restart" ]; then stop start # 检查查询运行状态 elif [ ${OPERATE} == "check" ]; then check # 查询所有项目 elif [ ${OPERATE} == "list" ]; then list else echo "Not supported the OPERATE." fi fi
|