본문 바로가기
lesson/Operating System

SIGKILL과 SIGTERM의 차이

by Peter Choi 2025. 6. 18.
반응형

SIGKILL과 SIGTERM의 차이점은 다른 Linux 시스템과 동일합니다. 이들은 프로세스에 신호를 보내 종료를 요청하는 방식에서 중요한 차이가 있습니다.

 

다음은 두 신호의 주요 차이점입니다.

 

1. SIGTERM (Signal Terminate)

  • 번호: 15
  • 용도: SIGTERM은 프로세스에 "부드럽게 종료해달라"는 요청입니다. 이는 기본 종료 신호이며, kill 명령을 옵션 없이 사용할 때 보내지는 신호입니다.
  • 동작: 프로세스는 SIGTERM 신호를 받으면 이를 감지하고 적절히 응답할 수 있습니다. 예를 들어, 열려 있는 파일을 닫거나, 현재 작업을 저장하거나, 네트워크 연결을 정리하는 등의 정리 작업을 수행할 수 있습니다. 프로세스는 이 신호를 무시하거나 처리하지 않을 수도 있습니다.
  • 복구 가능성: 프로세스는 SIGTERM을 포착(catch)하여 처리 루틴을 실행할 수 있습니다. 즉, 신호를 받은 후에도 일정 시간 동안 작업을 수행할 수 있습니다.
  • 사용 예시: 대부분의 경우, 프로세스를 종료하려면 SIGTERM을 먼저 사용해야 합니다. 예를 들어, kill <PID> 명령은 SIGTERM을 보냅니다.

2. SIGKILL (Signal Kill)

  • 번호: 9
  • 용도: SIGKILL은 프로세스에 "즉시 종료하라"는 강제 명령입니다. 이는 시스템이 프로세스를 무조건 종료하도록 지시하는 가장 강력한 방법입니다.
  • 동작: SIGKILL 신호는 프로세스에 의해 포착(catch), 무시(ignore), 또는 블록(block)될 수 없습니다. 운영체제 커널이 프로세스를 즉시 종료시킵니다. 프로세스는 정리 작업을 수행할 기회가 전혀 없습니다.
  • 복구 가능성: 프로세스는 SIGKILL을 포착하거나 처리할 수 없습니다. 따라서 데이터 손실이나 리소스 누출이 발생할 수 있습니다.
  • 사용 예시: SIGTERM으로 종료되지 않는 프로세스, 응답하지 않는 프로세스 또는 악의적인 프로세스를 종료할 때 최후의 수단으로 사용됩니다. 예를 들어, kill -9 <PID> 명령은 SIGKILL을 보냅니다.

요약 표:

특징 SIGTERM (15) SIGKILL (9)
용도 부드러운 종료 요청 강제 즉시 종료 명령
처리 가능? 예 (포착, 무시, 블록 가능) 아니오 (포착, 무시, 블록 불가능)
정리 작업 가능 (데이터 저장, 리소스 해제 등) 불가능 (즉시 종료되므로)
명령 예시 kill <PID> kill -9 <PID> 또는 kill -KILL <PID>
데이터 손실 최소화 가능성 높음 발생 가능성 높음
권장 사용 대부분의 경우 선호 (먼저 시도) 최후의 수단 (프로세스가 응답하지 않을 때)
반응형

댓글