답변:
SIGKILL 은 실행중인 프로세스를 죽이는 데 결코 실패하지 않습니다 . 애플리케이션에 반응 할 수있는 다른 신호가 존재합니다.
SIGINT, SIGTERM, SIGQUIT 및 SIGHUP의 기본 동작은 프로그램을 종료하는 것입니다. 그러나 애플리케이션은 이러한 신호에 대한 핸들러를 설치할 수 있습니다. 따라서 이러한 신호를 수신 할 때 응용 프로그램의 실제 동작은 시스템 설계가 아니라 규칙 (각 응용 프로그램이 따르거나 따르지 않을 수 있음)의 문제입니다.
SIGINT는 로트의 "가장 약한"것입니다. 일반적인 의미는 "현재하고있는 작업을 중지하고 추가 사용자 입력을 기다립니다"입니다. 터미널에서 Ctrl+ C로 생성 된 신호 입니다. 비 대화식 프로그램은 일반적으로 SIGTERM과 같이 처리합니다.
SIGTERM은 "정상"킬 신호입니다. 응용 프로그램이 깨끗하게 종료되도록 지시합니다. 응용 프로그램은 상태를 저장하고 그렇지 않은 경우 임시 파일과 같은 리소스를 비우는 데 시간이 걸릴 수 있습니다. 중요한 응용 프로그램 중에 중단하지 않으려는 응용 프로그램은 잠시 동안 SIGTERM을 무시할 수 있습니다.
SIGHUP은 가혹 성 측면에서 SIGTERM과 거의 동일하지만 사용자가 해당 터미널에서 연결을 끊을 때 (비교적으로 전화선과 모뎀을 통해 연결했기 때문에) 터미널에서 실행되는 응용 프로그램으로 자동 전송되기 때문에 특정 역할이 있습니다. 전화를 끊다). SIGHUP은 명시 적으로 전송해야하는 SIGTERM과 달리 비자발적 인 경우가 많으므로 응용 프로그램은 SIGHUP에 상태를 저장해야합니다. SIGHUP은 또한 구성 파일을 다시로드하는 사용자가 아닌 응용 프로그램 ( 데몬 )에 대해 완전히 다른 기존 의미를 갖습니다 .
SIGQUIT는 무시할 수없는 신호 중 가장 거친 신호입니다. 응용 프로그램이 잘못 작동하고 지금 종료해야 할 때 사용되며, 기본적으로 코어 덤프 파일 (대부분의 사용자가 코어 파일이 기본적으로 생성되지 않는 경향이있는 현대 시스템)을 남겼습니다. . 응용 프로그램은 처리기를 설정할 수 있지만 SIGQUIT의 의도는 무언가 잘못되었을 때 사용되므로 매우 적습니다 (특히 상태를 저장하지 않아야 함).
HUP
반드시 프로그램이 종료된다는 의미는 아닙니다. 일부 프로그램은SIGHUP
구성 파일을 다시로드 하는 데 사용 됩니다.SIGKILL
프로세스가 인터럽트 불가능한 휴면 상태 일 때 실패하거나 연기됩니다 .