|
1 | 1 | #!/bin/bash |
2 | | -BUILD_PATH=$(ls /home/ubuntu/app/server-0.0.1-SNAPSHOT.jar) |
3 | | -JAR_NAME=$(basename $BUILD_PATH) |
4 | | -echo "> build νμΌλͺ
: $JAR_NAME" |
5 | | - |
6 | | -echo "> build νμΌ λ³΅μ¬" |
7 | | -DEPLOY_PATH=/home/ubuntu/app/nonstop/jar/ |
8 | | -cp $BUILD_PATH $DEPLOY_PATH |
9 | | - |
10 | | -echo "> νμ¬ κ΅¬λμ€μΈ Set νμΈ" |
11 | | -CURRENT_PROFILE=$(curl -s http://localhost/profile) |
12 | | -echo "> $CURRENT_PROFILE" |
13 | | - |
14 | | -# μ¬κ³ μλ set μ°ΎκΈ°: set1μ΄ μ¬μ©μ€μ΄λ©΄ set2κ° μ¬κ³ μκ³ , λ°λλ©΄ set1μ΄ μ¬κ³ μμ |
15 | | -if [ $CURRENT_PROFILE == set1 ] |
16 | | -then |
17 | | - IDLE_PROFILE=set2 |
18 | | - IDLE_PORT=8082 |
19 | | -elif [ $CURRENT_PROFILE == set2 ] |
20 | | -then |
21 | | - IDLE_PROFILE=set1 |
22 | | - IDLE_PORT=8081 |
| 2 | +set -e |
| 3 | + |
| 4 | +APP_DIR=/home/ec2-user/app |
| 5 | +JAR_PATH=$(ls $APP_DIR/*.jar | head -1) |
| 6 | +echo "> JAR νμΌ: $JAR_PATH" |
| 7 | + |
| 8 | +echo "> μ€ν μ€μΈ μ ν리μΌμ΄μ
μ’
λ£" |
| 9 | +CURRENT_PID=$(pgrep -f '\.jar' || true) |
| 10 | +if [ -n "$CURRENT_PID" ]; then |
| 11 | + echo "> μ’
λ£: $CURRENT_PID" |
| 12 | + kill -15 $CURRENT_PID |
| 13 | + sleep 5 |
23 | 14 | else |
24 | | - echo "> μΌμΉνλ Profileμ΄ μμ΅λλ€. Profile: $CURRENT_PROFILE" |
25 | | - echo "> set1μ ν λΉν©λλ€. IDLE_PROFILE: set1" |
26 | | - IDLE_PROFILE=set1 |
27 | | - IDLE_PORT=8081 |
| 15 | + echo "> μ€ν μ€μΈ μ ν리μΌμ΄μ
μμ" |
28 | 16 | fi |
29 | 17 |
|
30 | | -echo "> application.jar κ΅μ²΄" |
31 | | -IDLE_APPLICATION=$IDLE_PROFILE-Runnect-Spring-Boot-Server.jar |
32 | | -IDLE_APPLICATION_PATH=$DEPLOY_PATH$IDLE_APPLICATION |
33 | | - |
34 | | -ln -Tfs $DEPLOY_PATH$JAR_NAME $IDLE_APPLICATION_PATH |
35 | | - |
36 | | -echo "> $IDLE_PROFILE μμ ꡬλμ€μΈ μ ν리μΌμ΄μ
pid νμΈ" |
37 | | -IDLE_PID=$(pgrep -f $IDLE_APPLICATION) |
38 | | - |
39 | | -if [ -z $IDLE_PID ] |
40 | | -then |
41 | | - echo "> νμ¬ κ΅¬λμ€μΈ μ ν리μΌμ΄μ
μ΄ μμΌλ―λ‘ μ’
λ£νμ§ μμ΅λλ€." |
42 | | -else |
43 | | - echo "> kill -15 $IDLE_PID" |
44 | | - kill -15 $IDLE_PID |
45 | | - sleep 20 |
46 | | -fi |
| 18 | +echo "> μ ν리μΌμ΄μ
μμ" |
| 19 | +nohup java -jar \ |
| 20 | + -Duser.timezone=Asia/Seoul \ |
| 21 | + $JAR_PATH \ |
| 22 | + >> /home/ec2-user/app/nohup.out 2>&1 & |
47 | 23 |
|
48 | | -echo "> $IDLE_PROFILE λ°°ν¬" |
49 | | -nohup java -jar -Duser.timezone=Asia/Seoul -Dspring.profiles.active=$IDLE_PROFILE $IDLE_APPLICATION_PATH >> /home/ubuntu/app/nohup.out 2>&1 & |
| 24 | +echo "> 15μ΄ ν ν¬μ€μ²΄ν¬ μμ" |
| 25 | +sleep 15 |
50 | 26 |
|
51 | | -echo "> $IDLE_PROFILE 10μ΄ ν Health check μμ" |
52 | | -echo "> curl -s http://localhost:$IDLE_PORT/health " |
53 | | -sleep 10 |
54 | | - |
55 | | -for retry_count in {1..10} |
56 | | -do |
57 | | - response=$(curl -s http://localhost:$IDLE_PORT/actuator/health) |
58 | | - up_count=$(echo $response | grep 'UP' | wc -l) |
59 | | - |
60 | | - if [ $up_count -ge 1 ] |
61 | | - then # $up_count >= 1 ("UP" λ¬Έμμ΄μ΄ μλμ§ κ²μ¦) |
62 | | - echo "> Health check μ±κ³΅" |
63 | | - break |
64 | | - else |
65 | | - echo "> Health checkμ μλ΅μ μ μ μκ±°λ νΉμ statusκ° UPμ΄ μλλλ€." |
66 | | - echo "> Health check: ${response}" |
| 27 | +for i in {1..10}; do |
| 28 | + RESPONSE=$(curl -s http://localhost:8080/actuator/health || true) |
| 29 | + if echo "$RESPONSE" | grep -q '"status":"UP"'; then |
| 30 | + echo "> ν¬μ€μ²΄ν¬ μ±κ³΅" |
| 31 | + break |
67 | 32 | fi |
68 | | - |
69 | | - if [ $retry_count -eq 10 ] |
70 | | - then |
71 | | - echo "> Health check μ€ν¨. " |
72 | | - echo "> Nginxμ μ°κ²°νμ§ μκ³ λ°°ν¬λ₯Ό μ’
λ£ν©λλ€." |
| 33 | + echo "> ν¬μ€μ²΄ν¬ μ€ν¨($i/10): $RESPONSE" |
| 34 | + if [ $i -eq 10 ]; then |
| 35 | + echo "> λ°°ν¬ μ€ν¨" |
73 | 36 | exit 1 |
74 | 37 | fi |
75 | | - |
76 | | - echo "> Health check μ°κ²° μ€ν¨. μ¬μλ..." |
77 | 38 | sleep 10 |
78 | 39 | done |
79 | 40 |
|
80 | | -echo "> Nginx μν νμΈ" |
81 | | -if ! sudo systemctl is-active --quiet nginx; then |
82 | | - echo "> Nginxκ° μ€μ§λμ΄ μμ΅λλ€. μ¬μμν©λλ€." |
83 | | - sudo systemctl start nginx |
84 | | - sleep 2 |
85 | | - if sudo systemctl is-active --quiet nginx; then |
86 | | - echo "> Nginx μ¬μμ μ±κ³΅" |
87 | | - else |
88 | | - echo "> Nginx μ¬μμ μ€ν¨." |
89 | | - fi |
90 | | -else |
91 | | - echo "> Nginx μ μ ꡬλ μ€" |
92 | | -fi |
| 41 | +echo "> Nginx μμ" |
| 42 | +sudo systemctl start nginx || true |
| 43 | +sudo systemctl enable nginx || true |
93 | 44 |
|
94 | | -echo "> μ€μμΉ" |
95 | | -sleep 10 |
96 | | -/home/ubuntu/app/nonstop/switch.sh |
| 45 | +echo "> λ°°ν¬ μλ£" |
0 commit comments