|
|
|
|
@ -142,7 +142,7 @@ export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
|
|
|
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
|
|
|
|
|
|
|
|
# 애플리케이션 관련 환경 변수
|
|
|
|
|
export APP_HOME=/app
|
|
|
|
|
export APP_HOME=/app/VIPS
|
|
|
|
|
export PATH=$APP_HOME:$PATH
|
|
|
|
|
|
|
|
|
|
# umask 설정 (파일 생성시 775 권한)
|
|
|
|
|
@ -157,7 +157,7 @@ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
|
|
|
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
|
|
|
|
|
|
|
|
# 애플리케이션 관련 환경 변수
|
|
|
|
|
export APP_HOME=/app
|
|
|
|
|
export APP_HOME=/app/VIPS
|
|
|
|
|
export PATH=$APP_HOME:$PATH
|
|
|
|
|
|
|
|
|
|
# umask 설정 (파일 생성시 775 권한)
|
|
|
|
|
@ -184,7 +184,7 @@ umask 002
|
|
|
|
|
|
|
|
|
|
# alias 설정 (편의용)
|
|
|
|
|
alias ll=\'ls -la\'
|
|
|
|
|
alias app=\'cd /app\'
|
|
|
|
|
alias app=\'cd /app/VIPS\'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3.4 설정 적용
|
|
|
|
|
@ -220,28 +220,28 @@ umask
|
|
|
|
|
```bash
|
|
|
|
|
# root 계정으로 실행
|
|
|
|
|
# 애플리케이션 디렉토리 생성
|
|
|
|
|
mkdir -p /app
|
|
|
|
|
mkdir -p /app/logs
|
|
|
|
|
mkdir -p /app/config
|
|
|
|
|
mkdir -p /app/backup
|
|
|
|
|
mkdir -p /app/VIPS
|
|
|
|
|
mkdir -p /app/VIPS/logs
|
|
|
|
|
mkdir -p /app/VIPS/config
|
|
|
|
|
mkdir -p /app/VIPS/backup
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.2 디렉토리 소유권 변경
|
|
|
|
|
```bash
|
|
|
|
|
# xit:xit 소유권으로 변경
|
|
|
|
|
chown -R xit:xit /app
|
|
|
|
|
chown -R xit:xit /app/VIPS
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.3 디렉토리 권한 설정
|
|
|
|
|
```bash
|
|
|
|
|
# 775 권한 설정 (소유자/그룹: rwx, 기타: r-x)
|
|
|
|
|
chmod -R 775 /app
|
|
|
|
|
chmod -R 775 /app/VIPS
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 4.4 권한 확인
|
|
|
|
|
```bash
|
|
|
|
|
# 디렉토리 권한 및 소유권 확인
|
|
|
|
|
ls -la /app
|
|
|
|
|
ls -la /app/VIPS
|
|
|
|
|
# 출력 예시:
|
|
|
|
|
# drwxrwxr-x. 4 xit xit 4096 Nov 19 10:00 .
|
|
|
|
|
# drwxrwxr-x. 2 xit xit 4096 Nov 19 10:00 logs
|
|
|
|
|
@ -258,7 +258,7 @@ ls -la /app
|
|
|
|
|
**방법 1: SCP 사용 (로컬 PC에서 실행)**
|
|
|
|
|
```bash
|
|
|
|
|
# Windows PowerShell 또는 CMD에서 실행
|
|
|
|
|
scp C:\path\to\VIPS-BOOT.war xit@서버IP:/app/
|
|
|
|
|
scp C:\path\to\VIPS-BOOT.war xit@서버IP:/app/VIPS/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**방법 2: SFTP 사용**
|
|
|
|
|
@ -267,7 +267,7 @@ scp C:\path\to\VIPS-BOOT.war xit@서버IP:/app/
|
|
|
|
|
sftp xit@서버IP
|
|
|
|
|
|
|
|
|
|
# 파일 전송
|
|
|
|
|
put VIPS-BOOT.war /app/
|
|
|
|
|
put VIPS-BOOT.war /app/VIPS/
|
|
|
|
|
exit
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
@ -277,7 +277,7 @@ exit
|
|
|
|
|
su - xit
|
|
|
|
|
|
|
|
|
|
# 파일 다운로드
|
|
|
|
|
cd /app
|
|
|
|
|
cd /app/VIPS
|
|
|
|
|
curl -O http://your-server/VIPS-BOOT.war
|
|
|
|
|
# 또는
|
|
|
|
|
wget http://your-server/VIPS-BOOT.war
|
|
|
|
|
@ -289,12 +289,12 @@ wget http://your-server/VIPS-BOOT.war
|
|
|
|
|
su - xit
|
|
|
|
|
|
|
|
|
|
# 파일 확인
|
|
|
|
|
ls -la /app/
|
|
|
|
|
ls -la /app/VIPS/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 5.3 실행 권한 부여 (필요시)
|
|
|
|
|
```bash
|
|
|
|
|
chmod 775 /app/VIPS-BOOT.war
|
|
|
|
|
chmod 775 /app/VIPS/VIPS-BOOT.war
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
@ -307,22 +307,22 @@ chmod 775 /app/VIPS-BOOT.war
|
|
|
|
|
su - xit
|
|
|
|
|
|
|
|
|
|
# 애플리케이션 실행
|
|
|
|
|
cd /app
|
|
|
|
|
cd /app/VIPS
|
|
|
|
|
java -jar VIPS-BOOT.war
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 6.2 백그라운드 실행 (터미널 종료 후에도 계속 실행)
|
|
|
|
|
```bash
|
|
|
|
|
# nohup으로 백그라운드 실행
|
|
|
|
|
nohup java -jar /app/VIPS-BOOT.war > /app/logs/app.log 2>&1 &
|
|
|
|
|
nohup java -jar /app/VIPS/VIPS-BOOT.war > /app/VIPS/logs/app.log 2>&1 &
|
|
|
|
|
# 실행로그도 안남김.. 서버 부팅 로그 확인 이후
|
|
|
|
|
nohup java -jar /app/VIPS-BOOT.war > /dev/null 2>&1 &
|
|
|
|
|
nohup java -jar /app/VIPS/VIPS-BOOT.war > /dev/null 2>&1 &
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 또는 출력 분리
|
|
|
|
|
nohup java -jar /app/VIPS-BOOT.war \
|
|
|
|
|
1>/app/logs/stdout.log \
|
|
|
|
|
2>/app/logs/stderr.log &
|
|
|
|
|
nohup java -jar /app/VIPS/VIPS-BOOT.war \
|
|
|
|
|
1>/app/VIPS/logs/stdout.log \
|
|
|
|
|
2>/app/VIPS/logs/stderr.log &
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 6.3 JVM 옵션과 함께 실행
|
|
|
|
|
@ -331,15 +331,15 @@ nohup java -jar /app/VIPS-BOOT.war \
|
|
|
|
|
nohup java \
|
|
|
|
|
-Xms512m \
|
|
|
|
|
-Xmx1024m \
|
|
|
|
|
-jar /app/VIPS-BOOT.war \
|
|
|
|
|
-jar /app/VIPS/VIPS-BOOT.war \
|
|
|
|
|
--spring.profiles.active=prod \
|
|
|
|
|
> /app/logs/app.log 2>&1 &
|
|
|
|
|
> /app/VIPS/logs/app.log 2>&1 &
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 6.4 프로세스 ID 확인
|
|
|
|
|
```bash
|
|
|
|
|
# 실행 직후 PID 저장
|
|
|
|
|
echo $! > /app/app.pid
|
|
|
|
|
echo $! > /app/VIPS/app.pid
|
|
|
|
|
|
|
|
|
|
# 또는 프로세스 검색
|
|
|
|
|
ps -ef | grep java
|
|
|
|
|
@ -364,14 +364,14 @@ netstat -tlnp | grep 8080
|
|
|
|
|
### 7.2 로그 확인
|
|
|
|
|
```bash
|
|
|
|
|
# 실시간 로그 확인
|
|
|
|
|
tail -f /app/logs/app.log
|
|
|
|
|
tail -f /app/VIPS/logs/app.log
|
|
|
|
|
|
|
|
|
|
# 최근 100줄 확인
|
|
|
|
|
tail -100 /app/logs/app.log
|
|
|
|
|
tail -100 /app/VIPS/logs/app.log
|
|
|
|
|
|
|
|
|
|
# 로그에서 에러 검색
|
|
|
|
|
grep -i error /app/logs/app.log
|
|
|
|
|
grep -i exception /app/logs/app.log
|
|
|
|
|
grep -i error /app/VIPS/logs/app.log
|
|
|
|
|
grep -i exception /app/VIPS/logs/app.log
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 7.3 애플리케이션 응답 테스트
|
|
|
|
|
@ -402,7 +402,7 @@ firewall-cmd --list-all
|
|
|
|
|
### 8.1 애플리케이션 중지
|
|
|
|
|
```bash
|
|
|
|
|
# PID 파일로 중지
|
|
|
|
|
kill $(cat /app/app.pid)
|
|
|
|
|
kill $(cat /app/VIPS/app.pid)
|
|
|
|
|
|
|
|
|
|
# 또는 프로세스 검색 후 중지
|
|
|
|
|
ps -ef | grep VIPS-BOOT.war
|
|
|
|
|
@ -415,22 +415,22 @@ kill -9 [PID번호]
|
|
|
|
|
### 8.2 애플리케이션 재시작
|
|
|
|
|
```bash
|
|
|
|
|
# 중지 후 시작
|
|
|
|
|
kill $(cat /app/app.pid)
|
|
|
|
|
kill $(cat /app/VIPS/app.pid)
|
|
|
|
|
sleep 3
|
|
|
|
|
nohup java -jar /app/VIPS-BOOT.war > /app/logs/app.log 2>&1 &
|
|
|
|
|
echo $! > /app/app.pid
|
|
|
|
|
nohup java -jar /app/VIPS/VIPS-BOOT.war > /app/VIPS/logs/app.log 2>&1 &
|
|
|
|
|
echo $! > /app/VIPS/app.pid
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 8.3 시작 스크립트 생성 (선택사항)
|
|
|
|
|
```bash
|
|
|
|
|
vi /app/start.sh
|
|
|
|
|
vi /app/VIPS/start.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
스크립트 내용:
|
|
|
|
|
```bash
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
APP_NAME="VIPS-BOOT.war"
|
|
|
|
|
APP_HOME="/app"
|
|
|
|
|
APP_HOME="/app/VIPS"
|
|
|
|
|
LOG_DIR="$APP_HOME/logs"
|
|
|
|
|
PID_FILE="$APP_HOME/app.pid"
|
|
|
|
|
|
|
|
|
|
@ -452,18 +452,18 @@ echo "Application started (PID: $(cat $PID_FILE))"
|
|
|
|
|
|
|
|
|
|
스크립트 실행 권한 부여:
|
|
|
|
|
```bash
|
|
|
|
|
chmod 775 /app/start.sh
|
|
|
|
|
chmod 775 /app/VIPS/start.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 8.4 중지 스크립트 생성 (선택사항)
|
|
|
|
|
```bash
|
|
|
|
|
vi /app/stop.sh
|
|
|
|
|
vi /app/VIPS/stop.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
스크립트 내용:
|
|
|
|
|
```bash
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
PID_FILE="/app/app.pid"
|
|
|
|
|
PID_FILE="/app/VIPS/app.pid"
|
|
|
|
|
|
|
|
|
|
if [ -f "$PID_FILE" ]; then
|
|
|
|
|
PID=$(cat $PID_FILE)
|
|
|
|
|
@ -488,7 +488,7 @@ fi
|
|
|
|
|
|
|
|
|
|
스크립트 실행 권한 부여:
|
|
|
|
|
```bash
|
|
|
|
|
chmod 775 /app/stop.sh
|
|
|
|
|
chmod 775 /app/VIPS/stop.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
@ -504,22 +504,22 @@ vi /etc/systemd/system/myapp.service
|
|
|
|
|
서비스 파일 내용:
|
|
|
|
|
```ini
|
|
|
|
|
[Unit]
|
|
|
|
|
Description=My Spring Boot Application
|
|
|
|
|
Description=VIPS Spring Boot Application
|
|
|
|
|
After=network.target
|
|
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
|
Type=simple
|
|
|
|
|
User=xit
|
|
|
|
|
Group=xit
|
|
|
|
|
WorkingDirectory=/app
|
|
|
|
|
ExecStart=/usr/lib/jvm/java-17-openjdk/bin/java -Xms512m -Xmx1024m -jar /app/VIPS-BOOT.war
|
|
|
|
|
WorkingDirectory=/app/VIPS
|
|
|
|
|
ExecStart=/usr/lib/jvm/java-17-openjdk/bin/java -Xms512m -Xmx1024m -jar /app/VIPS/VIPS-BOOT.war
|
|
|
|
|
ExecStop=/bin/kill -15 $MAINPID
|
|
|
|
|
Restart=on-failure
|
|
|
|
|
RestartSec=10
|
|
|
|
|
|
|
|
|
|
# 로그 설정
|
|
|
|
|
StandardOutput=append:/app/logs/app.log
|
|
|
|
|
StandardError=append:/app/logs/error.log
|
|
|
|
|
StandardOutput=append:/app/VIPS/logs/app.log
|
|
|
|
|
StandardError=append:/app/VIPS/logs/error.log
|
|
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
|
@ -573,21 +573,21 @@ vi /home/xit/.bash_profile
|
|
|
|
|
# (JAVA_HOME, PATH, umask 설정 추가)
|
|
|
|
|
|
|
|
|
|
# 4. 디렉토리 생성 및 권한 설정
|
|
|
|
|
mkdir -p /app/logs /app/config /app/backup
|
|
|
|
|
chown -R xit:xit /app
|
|
|
|
|
chmod -R 775 /app
|
|
|
|
|
mkdir -p /app/VIPS/logs /app/VIPS/config /app/VIPS/backup
|
|
|
|
|
chown -R xit:xit /app/VIPS
|
|
|
|
|
chmod -R 775 /app/VIPS
|
|
|
|
|
|
|
|
|
|
# 5. 소스 배포 (외부에서 파일 전송)
|
|
|
|
|
# scp VIPS-BOOT.war xit@서버IP:/app/
|
|
|
|
|
# scp VIPS-BOOT.war xit@서버IP:/app/VIPS/
|
|
|
|
|
|
|
|
|
|
# 6. xit로 전환 후 실행
|
|
|
|
|
su - xit
|
|
|
|
|
cd /app
|
|
|
|
|
nohup java -jar VIPS-BOOT.war > /app/logs/app.log 2>&1 &
|
|
|
|
|
cd /app/VIPS
|
|
|
|
|
nohup java -jar VIPS-BOOT.war > /app/VIPS/logs/app.log 2>&1 &
|
|
|
|
|
|
|
|
|
|
# 7. 실행 확인
|
|
|
|
|
ps -ef | grep java
|
|
|
|
|
tail -f /app/logs/app.log
|
|
|
|
|
tail -f /app/VIPS/logs/app.log
|
|
|
|
|
curl http://localhost:8080/actuator/health
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
@ -619,22 +619,22 @@ kill [PID]
|
|
|
|
|
### 권한 오류 발생 시
|
|
|
|
|
```bash
|
|
|
|
|
# 파일 권한 확인
|
|
|
|
|
ls -la /app/
|
|
|
|
|
ls -la /app/VIPS/
|
|
|
|
|
|
|
|
|
|
# 권한 재설정
|
|
|
|
|
chown -R xit:xit /app
|
|
|
|
|
chmod -R 775 /app
|
|
|
|
|
chown -R xit:xit /app/VIPS
|
|
|
|
|
chmod -R 775 /app/VIPS
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 로그 파일이 생성되지 않는 경우
|
|
|
|
|
```bash
|
|
|
|
|
# 로그 디렉토리 권한 확인
|
|
|
|
|
ls -la /app/logs
|
|
|
|
|
ls -la /app/VIPS/logs
|
|
|
|
|
|
|
|
|
|
# 디렉토리가 없으면 생성
|
|
|
|
|
mkdir -p /app/logs
|
|
|
|
|
chown xit:xit /app/logs
|
|
|
|
|
chmod 775 /app/logs
|
|
|
|
|
mkdir -p /app/VIPS/logs
|
|
|
|
|
chown xit:xit /app/VIPS/logs
|
|
|
|
|
chmod 775 /app/VIPS/logs
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 메모리 부족 오류 (OutOfMemoryError)
|
|
|
|
|
|