systemctl

Systemctl는 Systemd의 cli로 편리하고 안전하게 linux에서 프로그램을 관리해준다.

sudo vim /etc/systemd/system/dudoji-server.service

sudo systemctl start dudoji-server

/etc/systemd/system/dudoji-server.service

[Unit]
Description=Dudoji Server
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/dudoji-backend
ExecStart=/usr/bin/java -Xmx512m -jar /home/ubuntu/dudoji-backend/build/libs/app.jar
# -Xmx512m 힙 최댓값 설정
SuccessExitStatus=143
Restart=on-failure
RestartSec=5

MemoryMax=600M # 제한 넘으면 -> 죽임
MemoryHigh=500M # 이걸 넘으면 줄이도록 압박
OOMPolicy=kill # out of memory 정책

[Install]
WantedBy=multi-user.target

build.gradle

bootJar {
    archiveBaseName.set('app')
    archiveVersion.set('')
    archiveClassifier.set('')
}