Signal   신호 , 시그널

(2023-10-12)

kill 명령어, SIGTERM


1. [운영체제]  시그널 (Signal)시그널을, 소프트웨어 인터럽트 라고도 함
     - 이에의해, 프로그램 실행의 일반적인 흐름이 중단되고 가로채어짐

  ㅇ 사용자(단말) 또는 커널프로세스에게 무언가를 통지하는 목적으로 사용됨
     - 만약, 프로세스가, 특정 이벤트 발생을 알리는 시그널을 받으면,
        . 자신의 코드에 들어있는 시그널 관련 핸들함수를 실행시키게 됨
     - 특히, 대부분의 시그널 기본 동작은,
        . 프로세스를 종료시키는 것과 연관됨

  ㅇ 시그널은, 프로세스 간에 메세지 전달 방법 중 하나임           ☞ 프로세스 간 통신 (IPC) 참조
     - 비동기적 사건(이벤트,예외 등)이 발생됐음을 다른 프로세스에게 알릴 때 사용
        . 즉, 소프트웨어에 의해 시작되는 `프로세스 간 통신 (IPC)`의 비동기적 방법


2. [Unix/Linux]  시그널

  ㅇ (구분)  SIGxxx : 보통 고유의 작은 정수형으로 하고, 1부터 순차 증가
     - 각 시그널심볼 명이, < signal.h >에 정의됨
        . 실제 숫자는 구현에 따라 달라질 수 있음

  ㅇ 주요 例)
     - HUP : Hangup, 로그아웃 후 실행종료
        . SIGHUP 1 : 터미널이나 프로세스제어권 중단
     - INT : Interrupt, 인터럽트
        . SIGINT 2 : 키보드에서 오는 인터럽트 (Ctrl+C)
     - QUIT : Quit, 중지
        . SIGQUIT 3 : 키보드에 의한 중지, 코어 덤프 (Ctrl+\)
     - ILL : ill, 잘못된
        . SIGILL 4 : 잘못된 명령
     - KILL : 무조건적이고 즉각적인 종료
        . SIGKILL 9 : 프로세스 강제 종료
     - ALRM : Alarm
        . SIGALRM 14 : 알람에 의해 발생되며 종료
     - TERM : Terminate, 자연스런 실행 종료
        . SIGTERM 15 : 정상 종료 작업 처리 후에 끝냄

  ㅇ 시그널 관련 명령어
     - 시그널 목록 확인 명령어 : kill -l
     - 시그널 지시 명령어 : kill -옵션번호 프로세스ID


3. [Unix/Linux]  시그널 처리시그널프로세스에게 전달되면, 이를 반드시 처리 해야 함

Unix/Linux 프로세스
   1. 프로세스   2. PID, PPID   3. 시스템 호출   4. init,exec,fork   5. 시그널   6. 좀비  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"