jeepay/docs/script/app.sh
2021-06-09 16:05:40 +08:00

136 lines
2.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
#功能简介:启动 xxx.jar 文件
#请先cd到项目下执行
#注意在sh文件中=赋值,左右两侧不能有空格
# .Power by terrfly
#当前所在目录
PROJECT_PATH=$(cd `dirname $0`; pwd)
#当前所在文件夹名
PROJECT_NAME="${PROJECT_PATH##*/}"
#jar名称
APP_NAME='jeepay-'$PROJECT_NAME'.jar'
#=======================================================================
#当前应用进行的变量标识
APP_PID=''
# 重新获取APPID
function refAppPID(){
APP_PID=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
}
# 获取运行程序的pid 进程号
function getAppPID(){
if [ ! $APP_PID ]; then #未获取过
refAppPID
fi
}
# 启动
function start(){
refAppPID #获取进程PID, 需重新获取, 避免restart时无法正确启动。
if [ $APP_PID ]; then
echo " [$APP_NAME] App is running. this start fail. "
return 0
fi
nohup java -jar $APP_NAME >/dev/null 2>start.log &
# tail -200f start.log
echo " [$APP_NAME] App starting ... "
}
# 停止
function stop(){
getAppPID #获取进程PID
if [ ! $APP_PID ]; then
echo " [$APP_NAME] App is NOT running. "
return 0
fi
echo " [$APP_NAME] [pid=$APP_PID] [kill -15] stop process... "
kill -15 $APP_PID # kill-15 :正常退出程序
sleep 5 #等待5s
# 重新获取PID
refAppPID
#仍然存在 需要kill -9
if [ $APP_PID ]; then
forcekill
fi
echo " [$APP_NAME] Stop Success! "
}
# 检查
function check(){
getAppPID #获取进程PID
if [ $APP_PID ]; then
echo " [$APP_NAME] App is running. PID[$APP_PID] "
else
echo " [$APP_NAME] App is NOT running. "
fi
}
# 强制kill进程
function forcekill(){
getAppPID #获取进程PID
if [ $APP_PID ]; then
echo " [$APP_NAME] [pid=$APP_PID] [kill -9] Kill ing ... "
kill -9 $APP_PID
echo " [$APP_NAME] [pid=$APP_PID] [kill -9] Kill Success! "
else
echo " [$APP_NAME] App is NOT running. "
fi
}
echo ''
command=$1
if [ "${command}" == "start" ]; then
start
elif [ "${command}" == "stop" ]; then
stop
elif [ "${command}" == "restart" ]; then
stop
start
elif [ "${command}" == "check" ]; then
check
elif [ "${command}" == "kill" ]; then
forcekill
else
echo "Usage: $0 {start|stop|restart|check|kill|}"
fi
echo ''