콘텐츠로 이동

시작 스크립트란?

시작 스크립트의 핵심은 Java 인자 설정이다.

Windows 서버에서는 .bat 확장자 파일이, Linux 서버에서는 .sh 확장자 파일이 시작 스크립트다.

sh와 bat는 서로 다른 운영체제에서 스크립트를 실행하는 데 쓰는 파일 확장자로, 실행 환경과 문법이 다르다.

  • 문법: sh 스크립트는 셸 명령어와 제어 구조를 쓰며, 조건문, 반복문, 함수 정의 같은 고급 프로그래밍 기능을 지원한다.
  • 실행 방법: 터미널에서 ./script.sh 또는 sh script.sh로 실행한다(스크립트에 실행 권한이 있어야 한다).
  • 문법: bat 스크립트는 DOS 명령어와 배치 명령어로 이루어지며, 간단한 조건문과 반복문을 지원하지만 sh 스크립트보다 기능과 유연성이 떨어진다.
  • 실행 방법: 파일을 더블클릭하거나 명령 프롬프트에서 script.bat를 입력해 실행한다.

주의: Windows와 Linux의 시작 스크립트는 서로 호환되지 않는다. 확장자만 바꾼다고 되는 게 아니다.

시작 인자(Flag라고도 한다)는 크게 세 종류로 나뉜다.

  • 표준 인자(-): 모든 JVM 구현이 반드시 지원해야 하며, 하위 호환성이 보장된다.
  • 비표준 인자(-X): 기본 JVM은 지원하지만 모든 JVM 구현이 지원한다는 보장은 없고, 하위 호환성도 보장되지 않는다.
  • 불안정 인자(-XX): JVM 구현마다 다르고 언제든 없어질 수 있으므로 신중하게 써야 한다.
Terminal window
java -Xms12G -Xmx12G -jar 서버코어이름.jar nogui
인자설명
-Xmx[size]최대 메모리 크기. 기본값은 물리 메모리의 1/4 또는 1G이며, 2M보다 커야 한다. 단위는 K/M/G
-Xms[size]최소 메모리 크기. 기본값은 물리 메모리의 1/64이며, 1M보다 커야 한다
-jarJava가 실행할 Jar 프로그램을 지정한다
—nogui서버 GUI를 끈다. 성능이 약간 좋아지며, 대부분의 사람은 GUI가 필요 없다
--nogui는 무엇을 하나

아래 같은 GUI를 띄우지 않는다.

진짜로 이 GUI는 아무 쓸모가 없으니 켜지 말자.

Windows start.bat 예시 스크립트:

Terminal window
@ECHO OFF
:start
java ..... -jar 서버코어이름.jar --nogui
goto start

Linux start.sh 예시 스크립트:

Terminal window
while [ true ]; do
java ..... -jar 서버코어이름.jar --nogui
echo 서버를 자동으로 재시작하는 중
echo Ctrl + C를 누르면 서버를 끈다.
done