유닉스 신호

신호는 유닉스, 유닉스 계열, POSIX 호환 운영 체제에 쓰이는 제한된 형태의 프로세스 간 통신이다. 신호는 프로세스나 동일 프로세스 내의 특정 스레드로 전달되는 비동기식 통보이다. 이러한 신호들은 1970년대 벨 연구소를 통해 존재한 뒤로 최근의 시기에는 POSIX 표준에 정의되어 있다.

역사 
버전 1 유닉스는 별도의 시스템 호출을 사용하여 인터럽트를 잡고 종료하고 머신 트랩을 수행하였다. 버전 4 유닉스 들어 모든 트랩을 하나의 호출 '신호'로 병합하였으며 버전 7에서 숫자마다 매겨진 각 트랩이 상징적인 이름을 가져가게 되었다. kill이 버전 2에 등장하였으며 버전 5에서는 임의의 신호들을 내보낼 수 있게 되었다.

신호 보내기 
실행 중인 프로세스의 제어 터미널에서 특정 키 조합을 입력하면 시스템이 특정 신호를 내보낸다:

 Ctrl-C (구 유닉스에서는 DEL): INT 신호 (SIGINT)를 내보낸다. 기본적으로 프로세스를 종료하는 역할을 한다.
 Ctrl-Z: TSTP 신호 (SIGTSTP)를 내보낸다. 기본적으로 프로세스가 실행을 유예시키는 역할을 한다.
 Ctrl-\: QUIT 신호 (SIGQUIT)를 내보낸다. 기본적으로 프로세스를 종료시킨 뒤 코어를 덤프하는 역할을 한다.
 Ctrl-T (모든 종류의 유닉스에서 지원하지는 않음): INFO 신호 (SIGINFO)를 내보낸다. 명령에서 지원하는 경우 기본적으로 운영 체제가 실행 중인 명령에 대한 정보를 표시한다.

현대 운영 체제에서 이러한 기본 키 조합들은 stty 명령으로 변경할 수 있다.

POSIX 신호

각주

외부 링크 
  Unix Signals Table, Ali Alanjawi, University of Pittsburgh 
  Man7.org Signal Man Page
  Introduction to Unix Signals Programming
  Another Introduction to Unix Signals Programming 
  UNIX and Reliable POSIX Signals  by Baris Simsek
  Signal Handlers by Henning Brauer

 
제어 흐름