최근에 개인 서버용 컴퓨터를 장만하게 되어 마인크래프트 서버를 열었다. 그 과정에서 서버 관리용 스크립트를 만들어서 사용법을 정리해서 올리려 한다.
wget https://github.com/Cruzer-S/Settings/blob/main/minecraft/server.sh
chmod +x server.sh
서버 스크립트는 필자가 github
에 올려둔 bash script
를 다운로드 받으면 된다.
서버는 Spigot
이며 사용법은 다음과 같다:
sudo ./server.sh install <version>
기본적으로 fedora
에서 실행하기 위해 만든 스크립트로 dnf
와 firewalld
를 사용한다. 따라서 다른 배포판을 사용한다면 해당하는 라인을 주석처리 하거나 제거하면 된다. 위 스크립트가 하는 일은 크게 다음과 같다:
git
, java
, openjdk
등의 필수 요소 패키지 설치Spigot
의 BuildTools.jar
다운로드Spigot JDK
의 빌드 수행 (이 과정이 조금 오래 걸린다.) 두 번째 인자를 넘겨줌으로써 서버의 버전을 선택할 수 있는데 위와 같이 선택 없이 실행하게 되면 최신 버전의 Spigot JDK
를 생성한다. 또한 빌드 부산물로 홈 디렉터리에 $HOME/.m2/
가 생성되는데 최종 결과물 외에는 불필요하다 판단해서 기존에 디렉터리가 존재하는 경우에만 백업한 뒤에 다시 복구하고 없다면 그냥 삭제하는 루틴을 넣었다.
sudo ./server.sh start
서버 실행 과정에서 자동으로 eula.txt
가 체크되기 때문에 바로 실행되며, 또한 firewall-cmd
로 25565
(마인크래프트 서버의 디폴트 포트)를 개방하는 명령을 수행한다.
또한 서버는 screen
을 통해 detached session
으로 실행되므로 세션을 닫아도 데몬처럼 서버는 계속 실행된다.
sudo ./server.sh stop
서버의 중단은 위 명령어로 가능하다. 닫는 과정에서 firewall-cmd
로 22565
포트를 다시 닫는다.
sudo ./server.sh open
서버 실행 중에 세션을 복구해서 터미널에 직접 커맨드를 주려면 위 명령을 입력하여 세션을 복구하면 된다. 세션을 빠져 나올 때에는 Ctrl + A
입력 후 D
를 입력하면 된다.
서버 주소는 mythos-cloud.com
이고 버전은 1.20.6
이다. 완전한 야생이며 자유롭게 참여할 수 있다. 혹 참여하게 된다면 기본적인 매너만 잘 지켜주길 바란다! 서버는 24시간 오픈되며 주기적으로 백업된다. 그리핑 유저 방지를 위해 GriefPreventation
플러그인 하나만 설치해뒀다.