백그라운드 실행
Linux 서버에서 서버를 백그라운드로 계속 실행하는 방법
섹션 제목: “Linux 서버에서 서버를 백그라운드로 계속 실행하는 방법”Linux의 세션 방식 때문에, 직접 실행한 서버는 SSH 연결이 끊기면 같이 멈춘다. 서버는 백그라운드에서 계속 돌아가야 한다.
방법 1: screen (추천)
섹션 제목: “방법 1: screen (추천)”screen으로 가상 창을 만들어 그 안에서 서버를 실행한다. 먼저 screen을 설치한다. 터미널에 다음을 입력한다.
시스템에 screen 패키지가 있는지 확인하고, 없으면 설치한다.
apt-get install screenyum install screenpacman -Sy screenscreen 기본 명령:
screen -ls # 모든 screen 목록 보기screen -S xxx # xxx라는 가상 창 만들기 (백엔드 서버 이름으로 짓는 것을 추천)screen -r xxx # xxx 가상 창에 들어가기 (이미 만들어져 있고 아무도 쓰지 않는 screen만 가능)screen -D xxx # xxx 창을 쓰고 있는 사용자 내보내기screen -S xxx -X quit # xxx 창 삭제 (screen 안에서 exit를 입력해도 삭제된다)screen 안에서 서버를 실행하고, Ctrl + A + D를 누르면 원래 창으로 돌아온다.
추천 이유: 백그라운드에서 돌리면서도 서버 콘솔에서 로그를 보고 명령을 입력할 수 있다.
방법 2: 패널 (추천)
섹션 제목: “방법 2: 패널 (추천)”패널을 쓴다. 간단하고 생각할 것 없이 화면으로 관리할 수 있다.
방법 3: systemd
섹션 제목: “방법 3: systemd”vim으로 mc.service 유닛 파일을 만든다.
vim ~/.config/systemd/user/mc.service파일 내용은 다음과 같이 작성한다.
[Unit]Description=Minecraft ServerAfter=network.target
[Service]WorkingDirectory=여기에 작업 디렉터리 경로ExecStart=여기에 실행 명령ExecStop=/bin/kill -SIGINT $MAINPIDRestart=on-failure
[Install]WantedBy=multi-user.target작성이 끝나면 설정을 다시 불러온다.
systemctl daemon-reload그다음 서버를 시작하고 부팅 시 자동 실행을 설정한다.
systemctl --user start mc.servicesystemctl --user enable mc.servicesystemctl --user status mc.service로 서비스 상태를 확인할 수 있다.
장점: 자동 재시작, 부팅 시 자동 실행 등이 된다.
단점: 콘솔에 들어가 명령을 입력할 수 없다.
방법 4: nohup과 &
섹션 제목: “방법 4: nohup과 &”&: 실행 명령 뒤에 &를 붙인다.
예: ./start.sh &
nohup: 실행 명령 앞에 붙인다.
예: nohup ./start.sh > run.log 2>&1 &
각 부분의 의미: