diff --git a/scripts/owrawww.sh b/scripts/owrawww.sh new file mode 100644 index 0000000..d8e03f2 --- /dev/null +++ b/scripts/owrawww.sh @@ -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 diff --git a/scripts/start.sh b/scripts/start.sh new file mode 100644 index 0000000..bb2a140 --- /dev/null +++ b/scripts/start.sh @@ -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" diff --git a/scripts/stop.sh b/scripts/stop.sh new file mode 100644 index 0000000..0059751 --- /dev/null +++ b/scripts/stop.sh @@ -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] 강제 종료됨." diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index f7c47df..0966505 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -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: diff --git a/src/main/resources/templates/sub01_05.html b/src/main/resources/templates/sub01_05.html index 7076a9a..7072e62 100644 --- a/src/main/resources/templates/sub01_05.html +++ b/src/main/resources/templates/sub01_05.html @@ -97,7 +97,7 @@