Learn about the signals sent to game servers like SIGTERM and SIGKILL.
읽는 시간 1분최근 업데이트: 21일 전
신호는 예외 이벤트가 발생했음을 호스트 운영체제에 리포트하는 방법 중 하나입니다. 호스트 운영체제는 신호 유형을 보고 이벤트를 어떻게 처리할지 판단합니다. 이 섹션에서는 일반적인 신호를 사용하는 방법과 Multiplay Hosting이 이러한 신호에 응답하는 방식을 설명합니다.
SIGTERM은 프로세스 종료를 트리거하는 제네릭 신호입니다. SIGKILL과 비슷하지만 프로세스가 이 신호를 차단, 처리하거나 무시할 수 있다는 점이 다릅니다. SIGTERM은 프로세스에 정중하게 종료를 요청하는 방식이라고 생각하면 됩니다.Multiplay Hosting은 서버를 중지할 때 빌드 실행 파일 프로세스에 SIGTERM 신호를 보냅니다. 빌드 실행 파일은 프로세스를 종료함으로써 SIGTERM 신호에 응답해야 합니다. 빌드 실행 파일 프로세스가 20초 이내에 SIGTERM 신호에 응답하지 않으면 SIGKILL 커맨드를 수신하게 됩니다.
참고
Windows에는 SIGTERM과 동등한 신호가 없습니다.
SIGKILL
SIGKILL은 프로세스가 즉시 종료되도록 하는 제네릭 신호입니다. SIGTERM과 비슷하지만 프로세스가 이 신호를 차단, 처리하거나 무시할 수 없다는 점이 다릅니다. SIGKILL 신호는 항상 프로세스를 종료합니다.Multiplay Hosting은 빌드 실행 파일 프로세스가 20초 이내에 SIGTERM 신호에 응답하지 않으면 SIGKILL 신호를 사용하여 빌드 실행 파일 프로세스를 종료합니다.
SIGSEGV는 액세스 불가능한 메모리 위치에 대한 액세스를 시도하는 프로세스에 전송되는 신호로, 이 신호가 전송되면 세분화 오류가 발생합니다. 일반적으로 SIGSEGV 신호를 트리거하는 요인으로는 null 포인터의 참조 해제, 버퍼 오버플로, 유효하지 않은 권한이 있습니다.Multiplay Hosting은 빌드 실행 파일 프로세스가 오작동하는 것을 감지하는 경우 빌드 실행 파일 프로세스에 SIGSEGV 신호를 보냅니다. 일반적으로 이는 프로세스가 너무 많은 메모리(또는 CPU)를 사용하고 있거나 액세스 권한이 없는 메모리에 대한 액세스를 시도하고 있음을 의미합니다.
참고
Multiplay Hosting이 SIGSTOP과 같은 다른 인터럽트 신호 대신 SIGSEGV 신호를 사용하는 이유는 다른 신호는 코어 덤프를 트리거하지 않거나 게임 엔진 문제를 유발하기 때문입니다.