feat: 로그 설정 추가, 찾아오시는길 지도 수정, 배포 스크립트 추가
This commit is contained in:
89
scripts/owrawww.sh
Normal file
89
scripts/owrawww.sh
Normal file
@@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_NAME="owrawww"
|
||||
APP_DIR="/home/www/owrainfo"
|
||||
JAR="$APP_DIR/owrawww-0.0.1-SNAPSHOT.jar"
|
||||
LOG_DIR="$APP_DIR/logs"
|
||||
PID_FILE="$APP_DIR/owrawww.pid"
|
||||
JAVA_HOME="/opt/jdk-21"
|
||||
|
||||
start() {
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
PID=$(cat "$PID_FILE")
|
||||
if kill -0 "$PID" 2>/dev/null; then
|
||||
echo "[$APP_NAME] 이미 실행 중입니다. (PID: $PID)"
|
||||
exit 1
|
||||
else
|
||||
rm -f "$PID_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -p "$LOG_DIR"
|
||||
|
||||
echo "[$APP_NAME] 시작 중..."
|
||||
nohup "$JAVA_HOME/bin/java" \
|
||||
-jar "$JAR" \
|
||||
--spring.profiles.active=prod \
|
||||
> /dev/null 2>&1 &
|
||||
|
||||
PID=$!
|
||||
echo $PID > "$PID_FILE"
|
||||
echo "[$APP_NAME] 시작됨. (PID: $PID)"
|
||||
echo "[$APP_NAME] 로그: $LOG_DIR/owrawww.log"
|
||||
}
|
||||
|
||||
stop() {
|
||||
if [ ! -f "$PID_FILE" ]; then
|
||||
echo "[$APP_NAME] PID 파일이 없습니다. 실행 중이 아닌 것 같습니다."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PID=$(cat "$PID_FILE")
|
||||
|
||||
if ! kill -0 "$PID" 2>/dev/null; then
|
||||
echo "[$APP_NAME] 프로세스($PID)가 이미 종료되어 있습니다."
|
||||
rm -f "$PID_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "[$APP_NAME] 종료 중... (PID: $PID)"
|
||||
kill "$PID"
|
||||
|
||||
for i in $(seq 1 30); do
|
||||
if ! kill -0 "$PID" 2>/dev/null; then
|
||||
rm -f "$PID_FILE"
|
||||
echo "[$APP_NAME] 정상 종료됨."
|
||||
exit 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo "[$APP_NAME] 강제 종료합니다."
|
||||
kill -9 "$PID"
|
||||
rm -f "$PID_FILE"
|
||||
echo "[$APP_NAME] 강제 종료됨."
|
||||
}
|
||||
|
||||
status() {
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
PID=$(cat "$PID_FILE")
|
||||
if kill -0 "$PID" 2>/dev/null; then
|
||||
echo "[$APP_NAME] 실행 중 (PID: $PID)"
|
||||
else
|
||||
echo "[$APP_NAME] 중지됨 (PID 파일 잔존)"
|
||||
fi
|
||||
else
|
||||
echo "[$APP_NAME] 중지됨"
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start) start ;;
|
||||
stop) stop ;;
|
||||
restart) stop; sleep 2; start ;;
|
||||
status) status ;;
|
||||
*)
|
||||
echo "사용법: $0 {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
34
scripts/start.sh
Normal file
34
scripts/start.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_NAME="owrawww"
|
||||
APP_DIR="/home/www/owrainfo"
|
||||
JAR="$APP_DIR/owrawww-0.0.1-SNAPSHOT.jar"
|
||||
LOG_DIR="$APP_DIR/logs"
|
||||
PID_FILE="$APP_DIR/owrawww.pid"
|
||||
JAVA_HOME="/opt/jdk-21"
|
||||
|
||||
# 이미 실행 중인지 확인
|
||||
if [ -f "$PID_FILE" ]; then
|
||||
PID=$(cat "$PID_FILE")
|
||||
if kill -0 "$PID" 2>/dev/null; then
|
||||
echo "[$APP_NAME] 이미 실행 중입니다. (PID: $PID)"
|
||||
exit 1
|
||||
else
|
||||
rm -f "$PID_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 로그 디렉토리 생성
|
||||
mkdir -p "$LOG_DIR"
|
||||
|
||||
# 시작
|
||||
echo "[$APP_NAME] 시작 중..."
|
||||
nohup "$JAVA_HOME/bin/java" \
|
||||
-jar "$JAR" \
|
||||
--spring.profiles.active=prod \
|
||||
> /dev/null 2>&1 &
|
||||
|
||||
PID=$!
|
||||
echo $PID > "$PID_FILE"
|
||||
echo "[$APP_NAME] 시작됨. (PID: $PID)"
|
||||
echo "[$APP_NAME] 로그: $LOG_DIR/owrawww.log"
|
||||
37
scripts/stop.sh
Normal file
37
scripts/stop.sh
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_NAME="owrawww"
|
||||
APP_DIR="/home/www/owrainfo"
|
||||
PID_FILE="$APP_DIR/owrawww.pid"
|
||||
|
||||
if [ ! -f "$PID_FILE" ]; then
|
||||
echo "[$APP_NAME] PID 파일이 없습니다. 실행 중이 아닌 것 같습니다."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PID=$(cat "$PID_FILE")
|
||||
|
||||
if ! kill -0 "$PID" 2>/dev/null; then
|
||||
echo "[$APP_NAME] 프로세스($PID)가 이미 종료되어 있습니다."
|
||||
rm -f "$PID_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "[$APP_NAME] 종료 중... (PID: $PID)"
|
||||
kill "$PID"
|
||||
|
||||
# 최대 30초 대기
|
||||
for i in $(seq 1 30); do
|
||||
if ! kill -0 "$PID" 2>/dev/null; then
|
||||
rm -f "$PID_FILE"
|
||||
echo "[$APP_NAME] 정상 종료됨."
|
||||
exit 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# 강제 종료
|
||||
echo "[$APP_NAME] 강제 종료합니다."
|
||||
kill -9 "$PID"
|
||||
rm -f "$PID_FILE"
|
||||
echo "[$APP_NAME] 강제 종료됨."
|
||||
@@ -20,6 +20,13 @@ logging:
|
||||
level:
|
||||
com.owrawww: WARN
|
||||
org.springframework.security: WARN
|
||||
file:
|
||||
name: /home/www/owrainfo/logs/owrawww.log
|
||||
logback:
|
||||
rollingpolicy:
|
||||
max-file-size: 10MB
|
||||
max-history: 30
|
||||
file-name-pattern: /home/www/owrainfo/logs/owrawww.%d{yyyy-MM-dd}.%i.log
|
||||
|
||||
app:
|
||||
upload:
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
<!-- 지도 -->
|
||||
<div class="loc-map-wrap">
|
||||
<div id="kakao-map"></div>
|
||||
<div id="daumRoughmapContainer1776662318241" class="root_daum_roughmap root_daum_roughmap_landing" style="width:100%"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -184,6 +184,26 @@
|
||||
</div>
|
||||
|
||||
<th:block layout:fragment="scripts">
|
||||
<!-- * 카카오맵 - 지도퍼가기 -->
|
||||
<!-- 1. 지도 노드 -->
|
||||
<div id="" class="root_daum_roughmap root_daum_roughmap_landing"></div>
|
||||
|
||||
<!--
|
||||
2. 설치 스크립트
|
||||
* 지도 퍼가기 서비스를 2개 이상 넣을 경우, 설치 스크립트는 하나만 삽입합니다.
|
||||
-->
|
||||
<script charset="UTF-8" class="daum_roughmap_loader_script" src="https://ssl.daumcdn.net/dmaps/map_js_init/roughmapLoader.js" ></script>
|
||||
|
||||
<!-- 3. 실행 스크립트 -->
|
||||
<script charset="UTF-8">
|
||||
new daum.roughmap.Lander({
|
||||
"timestamp": "1776662318241",
|
||||
"key": "mzw6dkwyv7n"
|
||||
}).render();
|
||||
|
||||
</script>
|
||||
</th:block>
|
||||
|
||||
<script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?appkey=1b5048f6e460777f6b5737197cb6ca1b"></script>
|
||||
<script>
|
||||
var container = document.getElementById('kakao-map');
|
||||
@@ -208,5 +228,4 @@
|
||||
map.relayout();
|
||||
map.setCenter(markerPosition);
|
||||
});
|
||||
</script>
|
||||
</th:block>
|
||||
</script>
|
||||
Reference in New Issue
Block a user