-
Notifications
You must be signed in to change notification settings - Fork 53
Expand file tree
/
Copy pathdeploy.sh
More file actions
38 lines (37 loc) · 861 Bytes
/
deploy.sh
File metadata and controls
38 lines (37 loc) · 861 Bytes
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
DOWNLOAD="/home/app.tgz"
DIR="/home/server/"
JAR="server-3.0.0.jar"
CHECK_URL="http://127.0.0.1:8080"
MAX=100
SECOND=2
PROFILE='production'
cd $DIR && rm -rf ./* && tar zxvf $DOWNLOAD -C ./ && rm -f $DOWNLOAD
is_running() { ps -p "$1" &>/dev/null; }
# 停止旧进程
pids=$(jps | awk -v jar="$JAR" '$2==jar {print $1}')
for pid in $pids; do
echo "STOP $pid"
kill -15 "$pid"
while is_running "$pid"; do
echo "..."
sleep 1
done
done
# 启动新进程
nohup java -jar "$JAR" --spring.profiles.active="$PROFILE" > /dev/null 2>&1 &
echo "START"
# 检查启动状态
INDEX=0
while [ $INDEX -lt $MAX ]; do
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL")
if [ "$HTTP_STATUS" -eq 200 ]; then
echo "SERVER UP!"
exit 0
fi
echo "..."
sleep $SECOND
INDEX=$((INDEX + 1))
done
# 启动失败
echo "SERVER ERROR."
exit 1