본문 바로가기
서버/Server

[Server] 팰월드 서버 크래쉬 났을 시 자동 재시작

by jamong1014 2024. 1. 30.
반응형

상황

  • 팰월드 서버 구축이 모두 이루어진 상태
  • 램 초과/충돌 시 발생하는 크래쉬
  • 우분투 OS

 

cd ~/Steam/steamapps/common/PalServer #서버 경로로 이동
sudo touch script_name.sh #script_name이라는 sh 스크립트 파일 생성
sudo chmod 777 script_name.sh #파일 권한 주기
sudo vi script_name.sh #script_name.sh 파일 편집

 

#!/bin/bash

while true; do
    # PalServer.sh 프로세스가 실행 중인지 확인
    if pgrep -f "Pal" > /dev/null; then       # Pal이라는 문자열이 포함된 프로세스를 찾는 구문
        echo "PalServer.sh is running."
    else
        echo "Palworld.sh is not running. Restarting..."
        ./PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS  # 이 부분을 실제 Palworld.sh를 실행하는 명령어로 대체
    fi

    # 5초 동안 대기 후 다시 확인
    sleep 5
done

이 스크립트 복사/붙혀넣기

먼저 코드에 'PalServer.sh' 되어있는걸 본인이 실행할 서버 파일 이름으로 편집하여 사용하면 된다.

 

* pgrep -f : -f 옵션은 특정 문자열이 포함된 프로세스를 찾는 것인데 이렇게 하는 이유는 팰월드 프로세스가 어떤 방식으로 실행하느냐에 따라서 프로세스명과 붙는 옵션명들이 다양하다.

그래서 어느 하나 특정 프로세스를 지정해서 종료하기가 번거롭기 때문에 어디에서나 공통적인 'Pal' 이라는 문자열이 포함된 프로세스로 지정하는것이다.

 

(저장 방법 : vi 키고 복사한걸 마우스 오른쪽 클릭해서 붙혀넣은 후 :wq! 누르고 엔터)

 

sudo nohup ./script_name.sh & #백그라운드로 서버 실행

이제 서버를 실행할 때  script_name.sh 파일 가지고 실행하면 된다.

 

ps -ef | grep script #팰월드 자동 재시작 스크립트 프로세스 확인
ps -ef | grep Pal #팰월드 서버 프로세스 확인

 

반응형

댓글