치명적인 신호란 무엇입니까?

치명적인 신호란 무엇입니까?

Linux 프로그래밍 인터페이스는 다음과 같이 말합니다.

TASK_KILLABLE: 이 상태는 TASK_UNINTERRUPTIBLE과 유사하지만 다음과 같은 경우 프로세스를 깨웁니다.치명적인 신호(즉, 프로세스를 종료하는 것)이 수신됩니다. 이 상태를 사용하도록 커널 코드의 관련 부분을 전환하면 중단된 프로세스에서 시스템을 다시 시작해야 하는 다양한 상황을 피할 수 있습니다. 대신 치명적인 신호를 보내 프로세스를 종료할 수 있습니다. TASK_KILLABLE을 사용하기 위해 변환할 첫 번째 커널 코드 부분은 NFS입니다.

치명적인 신호는 TASK_KILLABLE 상태의 프로세스를 깨울 수 있지만 TASK_UNINTERRUPTIBLE 상태의 프로세스는 깨울 수 없습니다.

치명적인 신호는 SIGKILL만 의미합니까, 아니면 SIGTERM, SIGHUP, SIGQUIT, SIGINT 또는...도 의미합니까?

답변1

대부분의 신호는 기본적으로 치명적입니다. 어떤 신호라도목록기본 작업 "종료" 또는 "코어 덤프"는 무시하거나 명시적으로 처리하지 않는 한 치명적입니다. 여기에는 SIGUSR1물론 과 같은 "양성" 신호가 포함됩니다.SIGKILLSIGTERM

이는 Linux 커널과 일치합니다.정의치명적인 신호의 경우:

따라서 치명적인 신호로 인해 프로세스가 종료됩니다(실행 중인 프로그램에서 지정한 핸들러를 통하지 않음).

관련 정보