last update 23.12.16
리눅스의 시그널은 가장 단순한 IPC 기법 중 하나이다. 운영체제는 프로세스의 상태를 변화시켜야 할 때 시그널을 보내 프로세스의 상태를 변화시킨다. 시그널이 전달되면 운영체제는 프로세스의 동작을 멈추고(interrupt process's flow of execution 한다고 표현; 하드웨어의 interrupt와는 다른 의미이다), 시그널의 의미에 맞는 특정 동작들을 시행하도록 한다.
시그널은 Unix 시스템의 다양한 부분에서 사용되고 있다. 예를 들어, 터미널에서 사용하는 다양한 단축키들도 시그널을 이용한다.
SIGINT
시그널이 전달되어 프로세스를 중단할 수 있다.SIGTSTP
시그널을 전달하여 터미널을 재시작 할 때 까지 (보통 fg
명령을 사용) 프로세스를 일시적으로 멈출 수 있다.SIGWINCH
시그널을 전달하여 바뀐 크기에 맞춰 화면 내용을 다시 출력하도록 만든다.C언어와 같은 저수준 언어를 다룰 때 볼 수 있는 다양한 에러들도 시그널로 전달된다.
SIGSEGV
시그널을 전달해 오류가 발생했음을 알린다.SIGBUS
시그널로 처리된다.시그널은 서비스를 다룰 때에도 유용하게 사용된다.
SIGCHLD
시그널을 전달해 종료를 알린다.SIGPIPE
를 전달해 문제가 발생했음을 알린다.SIGTERM
을 전달해 차례로 자식 프로세스를 종료하고 정상적으로 종료하도록 알린다.(graceful termination)SIGKILL
을 전달해 데몬을 강제 종료한다.이외에도 많은 시그널이 있다.