CentOS 8에서 Minecraft 시스템 서비스 서버 콘솔을 여는 방법은 무엇입니까?

CentOS 8에서 Minecraft 시스템 서비스 서버 콘솔을 여는 방법은 무엇입니까?

저는 Linux를 처음 접했기 때문에 어리석은 질문일 수도 있지만 어쨌든: 저는 저와 친구들을 위해 Minecraft 서버를 실행하기 위해 컴퓨터에 CentOS 8 가상 머신을 만들었습니다.이 가이드.따라서 올바르게 이해했다면 서버에 대해 다른 Linux 사용자를 생성했고 시스템 전원을 켤 때마다 서버가 systemd 서비스로 시작되었습니다.

서버가 자동으로 시작되면 편리하지만, 한 가지 문제가 있는데, 서버 콘솔을 사용할 수 없다는 점입니다. 콘솔을 사용하기 위해 찾은 유일한 방법은 서비스와 함께 스크린 세션을 사용하는 것입니다. 하지만 Linux를 처음 사용하기 때문에 어떻게 해야 할지 모르겠습니다(minecraft.service에 뭔가를 추가해야 합니까) 파일?). 내 Minecraft.service 파일은 다음과 같습니다.

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

[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx2048M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p mypassword stop

[Install]
WantedBy=multi-user.target

어쨌든 제 질문은 화면 기능을 사용하여 서버를 실행하는 방법입니까, 아니면 더 좋은 방법이 있습니까?

답변1

시작 지시문을 변경하십시오 minecraft.service.

ExecStart=/usr/bin/java -Xmx2048M -Xms1024M -jar server.jar nogui

도착하다:

ExecStart=/usr/bin/screen -DmS minecraft-screen /usr/bin/java -Xmx2048M -Xms1024M -jar server.jar nogui

minecraft-screen화면 이름만 원하는 대로 변경할 수 있습니다.

답변2

우선 저는 개인적으로 Minecraft 서버를 호스팅하지 않습니다. 나는 방금 내 친구가 그의 서버를 시스템 서비스로 바꾸는 것을 도왔습니다.

서버 구성에서 RCON을 활성화해야 합니다(이미 가지고 있다고 가정합니다). 그런 다음 터미널이 시작된 후 mcrcon을 사용하여 서버에 연결할 수 있습니다.

mcrcon -h <ip> -P <port> -t

이렇게 하면 서비스(-t)가 아닌 서버를 실행할 때 일반적으로 표시되는 라이브 터미널이 제공됩니다.

Linux에 익숙하지 않다고 언급하셨으므로 사용 사례에 대한 몇 가지 추가 설명이 있습니다.

mcrcon 명령이 PATH 변수에 없을 수 있습니다. 따라서 위 코드 블록의 구문을 실행하면 해당 명령을 찾을 수 없다는 오류가 발생할 수 있습니다. 이 경우 서비스 파일의 기능을 유지하려면 /opt/minecraft/tools/mcrcon/mcrcon(mcrcon 실행 파일의 경로)을 /usr과 같은 PATH에 이미 있는 위치에 심볼릭 링크해야 합니다. /쓰레기

ln -s /opt/minecraft/tools/mcrcon/mcrcon /usr/bin/mcrcon

이렇게 하면 디렉토리를 /opt/minecraft/tools/mcrcon/으로 변경하고 ./mcrcon으로 실행하거나 전체 경로 /opt/minecraft/tools/mcrcon/mcrcon을 사용하여 mcrcon을 실행할 필요 없이 모든 작업 디렉토리에서 mcrcon을 실행할 수 있습니다. .

편집하다

RCON을 사용할 때 더 이상 표시되지 않는 일반 STDOUT 로그 메시지는 Minecraft 서버 디렉토리 내의 로그 하위 디렉토리에 있는 server.log에 계속 기록되어야 합니다.

답변3

추가해 보세요

Type=oneshot
RemainAfterExit=yes

[서비스] 섹션으로 이동

CentOS에서는 서비스가 /etc/systemd/system에 있어야 합니다.

따라서 게시물에 제공한 콘텐츠를 사용하여 위 디렉터리에minecraft_server.service 파일을 생성해야 합니다.

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

[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx2048M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p mypassword stop
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

그런 다음 다음 명령을 실행합니다.

sudo systemctl daemon-reload

새로운 서비스를 추가할 때 필요합니다.

그런 다음 다음 명령을 입력하십시오.

sudo systemctl start minecraft_server.service

서버 시작 중에 서비스가 시작되도록 하려면 활성화하면 됩니다.

sudo systemctl enable minecraft_server.service

즉시 시작 중지 및 다시 시작을 사용하여 서비스를 중지하거나 다시 시작할 수도 있습니다.

나는 마인크래프트를 해본 적도 없고 앞으로도 하지 않을 것이고, 익숙하지도 않습니다. 나는 systemd에 서비스를 추가하는 방법만 알고 있습니다.

이 웹사이트에서는 systemctl 사용법을 설명합니다. Systemctl을 사용하여 Systemd 서비스 및 장치를 관리하는 방법

관련 정보