먼저 유닉스 계열 시스템의 시그널 이 무엇인지 알아야 합니다 (몇 분 정도 소요됩니다).
신호 는 중요한 이벤트가 발생했음을 나타 내기 위해 (실행중인) 프로그램에 전송되는 소프트웨어 인터럽트입니다.
이벤트는 사용자 요청에서 잘못된 메모리 액세스 오류까지 다양합니다. 인터럽트 신호와 같은 일부 신호는 사용자가 일반적인 제어 흐름에없는 작업을 프로그램에 요청했음을 나타냅니다.
사용할 수있는 시그널에는 여러 유형이 있습니다. 사용 가능한 / 가능한 시그널의 전체 목록을 얻으려면 " $ kill -l "명령을 사용하십시오.
위의 출력에서 각 신호에는 ' 신호 번호 '(예 : 1, 2, 3) 및 ' 신호 이름 '(예 : SIGUP, SIGINT, SIGQUIT)이 연결되어 있음이 명확하게 표시 됩니다. 각각의 모든 Signal이 수행하는 작업에 대해 자세히 알아 보려면이 링크를 방문 하십시오. .
마지막으로 " kill -9 명령 에서 9 번을 사용하는 이유"에 대한 질문이 있습니다 .
프로그램이나 스크립트에 신호를 전달하는 방법에는 여러 가지가 있습니다. 신호를 보내는 데 일반적으로 사용되는 방법 중 하나는 kill 명령 을 사용하는 것 입니다. 기본 구문은 다음과 같습니다.
$ kill -signal pid
여기서 signal은 신호의 번호 또는 이름 과 그 뒤에 신호가 전송 될 프로세스 ID (pid)입니다.
예를 들어 --SIGKILL (또는 -9 ) 신호는 프로세스를 즉시 종료합니다.
$ kill -SIGKILL 1001
과
$ kill -9 1001
두 명령은 모두 동일한 것입니다. 즉 위에서는 '신호 이름'을 사용했고 나중에는 '신호 번호'를 사용했습니다.
평결 : 사람은 kill 명령에 '신호 이름'또는 '신호 번호'를 사용할지 여부를 선택할 수 있습니다 .