40 lines
833 B
Bash
40 lines
833 B
Bash
#!/bin/bash
|
||
# Spring Boot 项目停止脚本
|
||
JAR_NAME="capability-0.0.1-SNAPSHOT.jar"
|
||
|
||
# 获取运行中的进程PID
|
||
get_running_pid() {
|
||
ps -ef | grep "${JAR_NAME}" | grep -v "grep" | awk '{print $2}'
|
||
}
|
||
|
||
# 停止服务
|
||
PID=$(get_running_pid)
|
||
if [ -z "${PID}" ]; then
|
||
echo "项目未在运行中,无需停止"
|
||
exit 0
|
||
fi
|
||
|
||
echo "正在停止项目... PID: ${PID}"
|
||
kill -15 "${PID}"
|
||
|
||
WAIT=0
|
||
while [ ${WAIT} -lt 10 ]; do
|
||
if [ -z "$(get_running_pid)" ]; then
|
||
echo "项目已优雅停止"
|
||
exit 0
|
||
fi
|
||
sleep 1
|
||
WAIT=$((WAIT + 1))
|
||
done
|
||
|
||
echo "优雅停止超时,强制终止进程... PID: ${PID}"
|
||
kill -9 "${PID}"
|
||
|
||
sleep 2
|
||
if [ -z "$(get_running_pid)" ]; then
|
||
echo "项目已强制停止"
|
||
else
|
||
echo "ERROR: 进程终止失败!请手动检查:ps -ef | grep ${JAR_NAME}"
|
||
exit 1
|
||
fi
|