CentOS7 + Systemd에서 Minecraft 서버 시작/자동 시작/자동 재부팅

6871 단어 minecraftcentos7

소개



Minecraft 서버는 갑자기 떨어질 것입니다! ?
그 때마다 SSH로 들어가 다시 시작하는 것은 까다로운!

데몬화는 어떻게 합니까?
Screen? ?

더 좋은 방법이 있습니다!

간단하게 Minecraft 서버를 좋은 느낌으로 운영할 수 있도록 하는 방법을 소개합니다.

Systemd란?



이번에는 Systemd라는 것을 사용하여 Minecraft 서버를 시작합니다.
Systemd는 간단히 말해서 Linux를 시작하는 메커니즘입니다.
데몬화나 갑자기 떨어졌을 때의 자동 재기동, OS 시작했을 때의 자동 기동, 로그 기록이라도 잘 해 줍니다.

CentOS 7부터 사용할 수 있습니다.

Minecraft 서버 구축



CentOS 7에서 Minecraft 서버를 구축하려면 여기를 참조하십시오.
  • IDCF 클라우드로 Minecraft 서버를 구축하세요!
  • 사쿠라 VPS로 minecraft 멀티 플레이어 서버 구축 OS 설치
  • minecraft 유저의 홈 디렉토리 이하에 jar 파일이 있어, minecraft 유저로 서버를 기동한다고 전제로 설명합니다.
    [minecraft@mctest ~]$ id
    uid=1000(minecraft) gid=1000(minecraft) groups=1000(minecraft)
    [minecraft@mctest ~]$ tree .
    .
    └── minecraft
        ├── minecraft_server.1.8.8.jar
        └── minecraft_server.jar
    
    1 directory, 2 files
    

    시작 스크립트 작성


    /home/minecraft/minecraft/boot 에 시작 스크립트를 만듭니다.minecraft 사용자로 작업하십시오.
    vi ~/minecraft/boot
    

    스크립트의 내용은 다음과 같습니다. 단 한 줄입니다!
    힙 메모리의 크기를 환경 변수로 지정할 수 있습니다.

    ~/minecraft/boot
    #!/bin/bash
    
    java -Xms$XMS_SIZE -Xmx$XMX_SIZE -jar $HOME/minecraft/minecraft_server.jar nogui
    

    마지막으로 이 스크립트에 실행 권한을 부여합니다.
    chmod +x ~/minecraft/boot
    

    환경 변수 정의 파일 작성



    힙 메모리 크기의 환경 변수를 정의하는 파일을 /home/minecraft/minecraft/environments에 만듭니다.
    이쪽도 minecraft 유저로 작업해 주세요.
    vi ~/minecraft/environments
    

    내용은 이런 느낌. 이해하기 쉽습니다!

    ~/minecraft/environments
    # ヒープメモリの初期サイズ
    XMS_SIZE=1024M
    
    # ヒープメモリの最大サイズ
    XMX_SIZE=1024M
    

    이후에는 여기를 다시 쓰면 메모리 크기를 조정할 수 있습니다.

    unit 파일 작성



    마지막으로 Systemd의 Unit 파일이라는 것을 만듭니다.
    이것은 root 사용자로 작업하십시오.
    vi /etc/systemd/system/minecraft_server.service
    

    내용은 이런 느낌이 듭니다.
    자세한 것은 설명하지 않지만 단순하기 때문에 무려 ~ 이해할 수 있을까 생각합니다.Restart=always 가 떨어지면 자동으로 재부팅하는 옵션입니다.

    /etc/systemd/system/minecraft_server.service
    [Unit]
    Description=Minecraft Server
    After=network-online.target
    
    [Service]
    ExecStart=/bin/bash /home/minecraft/minecraft/boot
    EnvironmentFile=/home/minecraft/minecraft/environments
    WorkingDirectory=/home/minecraft/minecraft
    Restart=always
    User=minecraft
    Group=minecraft
    
    [Install]
    WantedBy=multi-user.target
    

    파일을 만든 후 Systemd에서 이 파일을 로드합니다.
    systemctl daemon-reload
    

    OS가 시작될 때 Minecraft 서버도 시작하도록 자동 시작을 활성화합니다.
    systemctl enable minecraft_server
    

    시작



    드디어 시작합니다!
    systemd를 사용한 시작은 다음 명령으로 수행할 수 있습니다.
    systemctl start minecraft_server
    

    다음으로 상태를 볼 수 있습니다.
    systemctl status minecraft_server
    

    이런 느낌:
    # systemctl status minecraft_server
    minecraft_server.service - Minecraft Server
       Loaded: loaded (/etc/systemd/system/minecraft_server.service; enabled)
       Active: active (running) since 日 2015-09-13 15:24:38 JST; 1min 57s ago
     Main PID: 1813 (bash)
       CGroup: /system.slice/minecraft_server.service
               ├─1813 /bin/bash /home/minecraft/minecraft/boot
               └─1814 java -Xms1024M -Xmx1024M -jar /home/minecraft/minecraft/minecraft_server.jar nogui
    
     9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Starting minecraft server version 1.8.8
     9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Loading properties
     9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Default game type: SURVIVAL
     9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Generating keypair
     9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Starting Minecraft server on *:25565
     9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Using epoll channel type
     9月 13 15:24:43 mctest.cs429idcfcloud.internal bash[1813]: [15:24:43] [Server thread/INFO]: Preparing level "world"
     9月 13 15:24:44 mctest.cs429idcfcloud.internal bash[1813]: [15:24:44] [Server thread/INFO]: Preparing start region for level 0
     9月 13 15:24:45 mctest.cs429idcfcloud.internal bash[1813]: [15:24:45] [Server thread/INFO]: Preparing spawn area: 54%
    

    종료할 때는 다음 명령입니다.
    systemctl stop minecraft_server
    

    결론



    이상입니다! 편안한 Minecraft 생활을!

    좋은 웹페이지 즐겨찾기