You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.0 KiB
Bash

#!/bin/bash
# 指定本地 Java 路径
JDK_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java"
# 虚拟机的相关属性配置
## 内存大小
VM_OPTS="-Xms2048m -Xmx2048m"
# SpringBoot 的相关属性配置
SPB_OPTS="--spring.profiles.active=dev"
# 项目的绝对路径
APP_LOCATION="/home/app/web/dev-protocol-springcloud.jar"
# 显示的项目名称
APP_NAME="dev-protocol-springcloud"
# 获取进程ID
PID_CMD="ps -ef |grep $APP_NAME |grep -v grep |awk '{print \$2}'"
# 启动
start() {
echo "=============================start=============================="
PID=$(eval "$PID_CMD")
if [[ -n $PID ]]; then
echo "$APP_NAME is already running, PID is $PID"
else
# nohup $JDK_HOME "$VM_OPTS" -jar $APP_LOCATION $SPB_OPTS >/dev/null 2>\$1 &
nohup $JDK_HOME -jar $APP_LOCATION >/dev/null 2>\$1 &
echo "nohup $JDK_HOME -jar $APP_LOCATION >/dev/null 2>\$1 &"
PID=$(eval "$PID_CMD")
if [[ -n $PID ]]; then
echo "Start $APP_NAME successfully, PID is $PID"
else
echo "Failed to start $APP_NAME !!!"
fi
fi
echo "=============================start=============================="
}
# 停止
stop() {
echo "=============================stop=============================="
PID=$(eval "$PID_CMD")
if [[ -n $PID ]]; then
kill -15 "$PID"
sleep 2
PID=$(eval "$PID_CMD")
if [[ -n $PID ]]; then
echo "Stop $APP_NAME failed by kill -15 $PID, begin to kill -9 $PID"
kill -9 "$PID"
sleep 2
echo "Stop $APP_NAME successfully by kill -9 $PID"
else
echo "Stop $APP_NAME successfully by kill -15 $PID"
fi
else
echo "$APP_NAME is not running!!!"
fi
echo "=============================stop=============================="
}
# 重启
restart() {
echo "=============================restart=============================="
stop
start
echo "=============================restart=============================="
}
# 状态
status() {
echo "=============================status=============================="
PID=$(eval "$PID_CMD")
if [[ -n $PID ]]; then
echo "$APP_NAME is running, PID is $PID"
else
echo "$APP_NAME is not running!!!"
fi
echo "=============================status=============================="
}
# 输出当前工程中用的变量信息
info() {
echo "=============================info=============================="
echo "APP_LOCATION: $APP_LOCATION"
echo "APP_NAME: $APP_NAME"
echo "JDK_HOME: $JDK_HOME"
echo "VM_OPTS: $VM_OPTS"
echo "SPB_OPTS: $SPB_OPTS"
echo "=============================info=============================="
}
# 对脚本使用方式声明
help() {
echo "start: start server"
echo "stop: shutdown server"
echo "restart: restart server"
echo "status: display status of server"
echo "info: display info of server"
echo "help: help info"
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
info)
info
;;
help)
help
;;
*)
help
;;
esac
exit $?