반응형
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> |
데이터 손실 | 최소화 가능성 높음 | 발생 가능성 높음 |
권장 사용 | 대부분의 경우 선호 (먼저 시도) | 최후의 수단 (프로세스가 응답하지 않을 때) |
반응형
'lesson > Operating System' 카테고리의 다른 글
라즈베리파이 안전하게 종료하는 방법 (0) | 2025.04.07 |
---|---|
리눅스 sar -b 실행이 안될 때 트러블슈팅 (0) | 2025.03.21 |
리눅스 쉘 $에서 #로 바꾸는 방법 (0) | 2024.11.10 |
C언어가 실행 파일이 되는 과정까지 (3) | 2024.10.09 |
소스 코드의 정확한 사전적 의미는? (1) | 2024.10.09 |
댓글