반응형
CentOS 7에서 systemd로 게임 서버 관리하기
CentOS 7 환경에서 게임 서버를 안정적으로 관리하기 위해 systemd를 활용하는 방법을 정리했습니다. 이 글에서는 서비스 파일을 작성하고, 서버를 실행 및 관리하는 과정을 설명합니다. 또한, 서버의 오류 로그만 출력하는 방법과 프로그램 수정 후 반영하는 절차도 포함했습니다.
1. 게임 서버 서비스 파일 생성
systemd는 Linux에서 서비스 관리에 널리 사용됩니다. 게임 서버 프로그램(program.dll)을 서비스로 등록하면 부팅 시 자동으로 시작되며, 오류가 발생해도 자동 재시작이 가능합니다.
서비스 파일 작성
- 서비스 파일 생성
아래 명령어로 서비스 파일을 생성합니다:
sudo vi /etc/systemd/system/game_server.service
- 서비스 파일 내용 작성
다음과 같은 내용을 작성합니다:
[Unit]
Description=Game Server Program
After=network.target
[Service]
ExecStart=/usr/bin/dotnet /path/to/program.dll
WorkingDirectory=/path/to
Restart=always
[Install]
WantedBy=multi-user.target
- ExecStart: 게임 서버를 실행할 명령어 (dotnet을 사용하여 DLL 파일 실행).
- WorkingDirectory: 프로그램이 실행될 디렉토리.
- Restart=always: 서버가 종료되면 자동으로 재시작.
- 서비스 파일 저장 후 종료
vi 편집기에서 저장하려면 ESC를 누른 뒤 :wq를 입력합니다.
2. 서비스 활성화 및 실행
서비스 파일 작성 후 다음 단계를 따라 실행합니다.
- 서비스 등록 및 재로드 작성한 서비스 파일을 systemd에 등록:
sudo systemctl daemon-reload
- 서비스 시작 서버를 실행:
sudo systemctl start game_server.service
- 상태 확인 서버가 정상적으로 실행 중인지 확인:
sudo systemctl status game_server.service
- 자동 실행 설정 부팅 시 자동으로 서버가 실행되도록 설정:
sudo systemctl enable game_server.service
3. 오류 로그 확인
서버 실행 중 발생한 오류를 확인하려면 journalctl 명령어를 사용합니다.
오류 로그만 출력
다음 명령어로 game_server 서비스의 오류 로그만 출력할 수 있습니다:
journalctl -u game_server.service -p err
- -u game_server.service: 특정 서비스의 로그만 출력.
- -p err: 오류 수준의 로그만 필터링.
로그를 실시간으로 확인
실행 중인 서버의 오류 로그를 실시간으로 확인하려면:
journalctl -u game_server.service -p err -f
4. 프로그램 수정 및 반영
게임 서버 프로그램(program.dll)을 수정한 경우, 수정 사항을 반영하려면 다음 단계를 따릅니다.
- 새로운 프로그램 업로드 수정된 program.dll을 서버에 업로드:
scp program.dll user@server_ip:/path/to/program.dll
// 나의 경우 폴더 전체를 옮김
scp -r -P [포트번호] [내컴퓨터 파일] [{linux_id}@{server_ip}:{path}]
- 서비스 재시작 새로운 버전의 프로그램을 적용하려면 서비스를 재시작합니다
sudo systemctl restart game_server.service
- 상태 확인 재시작 후 서비스가 정상적으로 실행 중인지 확인
sudo systemctl status game_server.service
5. 참고 명령어
//서비스 중지
sudo systemctl stop game_server.service
//서비스 비활성화
sudo systemctl disable game_server.service
//전체 로그 확인
journalctl -u game_server.service
//서비스 삭제
sudo rm /etc/systemd/system/game_server.service sudo systemctl daemon-reload
마무리
systemd를 활용하면 게임 서버를 효율적으로 관리할 수 있습니다. 특히, 자동 재시작 및 오류 로그 확인 기능을 통해 서버의 안정성을 높일 수 있습니다. 이 과정은 CentOS 7 환경뿐만 아니라 다른 Linux 배포판에서도 유사하게 적용 가능합니다.
필요에 따라 로그 관리나 서비스 최적화를 추가로 구현해 안정성을 더욱 강화할 수 있습니다. Happy Coding! 🚀
반응형
'OS > Linux' 카테고리의 다른 글
SCP를 이용한 파일 및 폴더 전송 가이드 (0) | 2024.11.23 |
---|---|
리눅스 CentOS에서 파일 삭제 방법 총정리 (0) | 2024.11.23 |
리눅스 CentOS 아파치 보안 설정 (0) | 2024.06.30 |
CentOS에서 비정상적인 로그인 시도 추적과 접근 제한 방법 (0) | 2024.06.28 |
CentOS SSH root 계정 접속 막기 linux 보안 (0) | 2024.06.28 |