애플리케이션 터미널에서 로컬 서버를 시작하고 입력을 위해 터미널을 열어두는 메뉴 항목

애플리케이션 터미널에서 로컬 서버를 시작하고 입력을 위해 터미널을 열어두는 메뉴 항목

나는 다음을 달성하고 싶습니다 :

응용 프로그램 메뉴 항목을 클릭하여 현재 Ubuntu 컴퓨터에서 실행 중인 Minecraft 서버를 시작하고 터미널 창을 콘솔로 열어 둡니다. 그런 다음 '화면'으로 돌아오면 해당 '콘솔 창'에서 서버를 관리할 수 있습니다.

작동할 때까지 데스크탑의 .sh 파일에서 이 스크립트를 시도했습니다.

#!/bin/bash
screen
cd /media/terabyte/minecraft/
./start.sh

하지만 터미널이 닫히고 서버는 계속 실행 중이지만 제어할 수 없으며 작업 관리자에서 서버를 종료해야 합니다.

답변1

마인크래프트 서버를 스크린 세션에서 실행하고 마인크래프트 서버가 종료될 때 해당 서버를 열어두려면 스크립트를 다음과 같이 변경하세요.

#/bin/bash
screen -m bash -c 'cd /media/terabyte/minecraft/ && ./start.sh ; bash'

그러면 screen이 실행되고 screen 세션 내에서 명령을 실행하여 서버를 시작합니다. 서버가 시작되면 bash터미널을 열어두기 위해 호출됩니다. 그렇지 않으면 스크린 세션이 종료됩니다.

이 화면 세션을 백그라운드로 즉시 이동하려면 -d(분리) 옵션을 포함하세요. 그런 다음 해당 세션에 속한 bash 프롬프트를 보려면 먼저 해당 screen 세션에 연결해야 합니다.

관련 정보