# VIPS 서버 관리 가이드

## 목차
- [1. 서버 접속](#1-서버-접속)
  - [1.1 최초 터미널 접속](#11-최초-터미널-접속)
  - [1.2 root 계정 접속](#12-root-계정-접속)
  - [1.3 xit 계정 접속](#13-xit-계정-접속)
- [2. MariaDB 접속](#2-mariadb-접속)
- [3. WAR 파일 배포](#3-war-파일-배포)
- [4. 애플리케이션 실행](#4-애플리케이션-실행)
  - [4.1 소스 위치 정보](#41-소스-위치-정보)
  - [4.2 직접 실행](#42-직접-실행)
  - [4.3 백그라운드 실행](#43-백그라운드-실행)
  - [4.4 백그라운드 프로세스 중지](#44-백그라운드-프로세스-중지)
- [5. Systemd 서비스 설정](#5-systemd-서비스-설정)
  - [5.1 서비스 파일 설정](#51-서비스-파일-설정)
  - [5.2 Systemd 명령어](#52-systemd-명령어)

---

## 1. 서버 접속

### 1.1 최초 터미널 접속
PuTTY를 이용하여 자동차 검사 서버에 접속합니다.

```bash
id: tune
password: dyddls12#  # 한글명: 용인12#
```

### 1.2 root 계정 접속

```bash
su -
password: dyddls12#  # 한글명: 용인12#
```

### 1.3 xit 계정 접속

```bash
su - xit
password: xit5811807
```

---

## 2. MariaDB 접속
리눅스 root 계정에서 실행합니다.

```bash
mysql -u vips -p -P 53306
password: xit5811807  # mariadb root 계정 비밀번호도 동일
```

```sql
use vips;
show tables;
```

---

## 3. WAR 파일 배포
Windows에서 Linux로 SCP를 이용하여 소스를 업로드합니다.

**Windows CMD에서 실행:**
```cmd
scp -P1922 c:\VIPS\VIPS-BOOT.war xit@105.19.10.124:/app/VIPS/
password: xit5811807
```

---

## 4. 애플리케이션 실행
리눅스 xit 계정에서 실행합니다.

### 4.1 소스 위치 정보

```bash
cd /app/VIPS/          # 애플리케이션 디렉토리
cd /app/VIPS/logs/     # 로그 디렉토리
```

### 4.2 직접 실행
실시간 로그 확인 가능, `Ctrl+C`로 즉시 중지

```bash
java -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war
```

### 4.3 백그라운드 실행

```bash
nohup java -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war > /dev/null 2>&1 &
```

### 4.4 백그라운드 프로세스 중지

```bash
# 프로세스 확인
ps -ef | grep VIPS

# PID 확인 후 종료
kill -9 [PID]
```

---

## 5. Systemd 서비스 설정
자동 재기동을 위한 systemd 서비스 설정입니다. **root 계정**에서 실행합니다.

### 5.1 서비스 파일 설정

```bash
vi /etc/systemd/system/vips.service
```

**서비스 파일 내용:**
```ini
[Unit]
Description=VIPS Spring Boot Application
After=network.target
# 600초(10분) 동안의 재시작 횟수를 카운트, 최대 5번까지만 재시작 시도
StartLimitIntervalSec=600
StartLimitBurst=5

[Service]
Type=simple
User=xit
Group=xit
WorkingDirectory=/app/VIPS
# ExecStart=/usr/lib/jvm/java-1.8.0-openjdk/bin/java -Xms512m -Xmx1024m -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war
ExecStart=/usr/lib/jvm/java-1.8.0-openjdk/bin/java -Dspring.profiles.active=prd -jar /app/VIPS/VIPS-BOOT.war
# ExecStop=/bin/kill -15 $MAINPID
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
```

### 5.2 Systemd 명령어

```bash
# systemd 데몬 리로드 (서비스 파일 수정 후 실행)
systemctl daemon-reload

# 부팅 시 자동 시작 설정
systemctl enable vips

# 상태 확인
systemctl status vips

# 서비스 시작
systemctl start vips

# 서비스 중지
systemctl stop vips

# 서비스 재시작
systemctl restart vips

# 실시간 로그 확인
journalctl -u vips -f
```
