리눅스 시그널 종류와 사용 방법, Linux signal 예제

리눅스 시그널 종류와 사용 방법, Linux signal 예제


▷ unix 시스템에서의 signal


IPC 중 하나로 상대방 프로세스에 어떤 행위를 요구한다(대게는 kill을 요구). unix 시스템의 핵심 중의 하나인 signal은 프로세스에게 어떤 event의 발생을 알리기 위해 전달되는 소프트웨어 인터럽트다.


다른 프로세스나 같은 프로세스 내의 특정 스레드에 보내어지는 ASYNCHRONOUS NOTIFICATION이다. 유닉스/리눅스 운영체제는 매우 다양한 종류의 signal이 있으며 이러한 signal은 각각의 의미를 가지고 사용된다.


리눅스 시그널 종류와 사용 방법, Linux signal 예제


▷ signal을 일으키는 event


1. hardware exception (나누기 0 등)

2. software condition (alarm 시간, expire 등)

3. 단말기에서 발생하는 사용자 입력 (^c, ^z 등)

4. kill 등과 같은 시스템 콜


▷ 운영체제에서의 signal


운영체제와 인간 사이에는 응용 소프트웨어가 놓여있고, 인간은 응용 소프트웨어를 통해서 운영체제와 소통을 하게 된다.

리눅스 운영체제는 미리 약속된 수십 가지의 signal을 제공하는데, kill(1)을 이용하면 리눅스가 지원하는 signal의 종류를 알아낼 수 있다


▷ 자주 사용되는 시그널


 SIGNAL

 프로세스를 죽여라(9번)

 SIGALARM

 알람을 발생한다(14번)

 SIGSTP

 프로세스를 멈춰라(19번)

 SIGCONT

 멈춰진 프로세스를 움직이게 하라(18번)

 SIGINT

 프로세스에 인터럽트하라. 즉 차단하라(2번)

 SIGSEGV

 프로세스가 다른 메모리 영역을 침범했다(11번)

 SIGABRT

 프로세스가 Aborted됨(6번)


리눅스 시그널 종류와 사용 방법, Linux signal 예제

이 글을 공유하기

댓글(0)

Designed by JB FACTORY