리눅스 및 DB

[리눅스] 시그널에 대하여

끄적끄적 2008. 7. 15. 15:48
 GNU 소프트웨어로 프로그래밍하기 라는 책을 보고 있다.

make file의 각종 옵션이나 gdb같은 디버그 툴에 대해 평소 잘 몰랐던 의문들이 많이 풀리는 느낌이다.

그 와중에 시그널에 대한 내용이 있어, 평소 인증 소스상에 있던 sigset(SIGINT, SIG_IGN) 등의 문구가 기억나서 해당 내용을 조금 찾아봤다.

네트워크 프로그램 개발시에 알아두면 좋은 내용들..

기본적인 시그널 정도는 기억하고 있자.  우리는 흔히 kill -9 pid로 9를 주면서도 9가 의미하는게 먼지 모르고 할 경우가 많다. 9가 SIGKILL 로 정의되있기 때문에 9를 주면 SIGKILL 시그널을 프로세스에 전달해 준다.


시그널 이름 설명
SIGHUP 터미널을 읽어버렸을때 발생한다.
SIGABRT 프로그램의 비정상종료시 발생한다.
SIGINT Control-C 나 DELETE 키를 입력했을때 발생한다.
SIGIO 비동기적인 입출력이 발생했을때
SIGKILL 프로세스를 죽이기 위해서
SIGPIPE 단절된 파이프에 write 할경우 발생
SIGSEGV 잘못된 메모리 참조(주로 포인터를 잘못 썼을때)
SIGSTOP 프로세스의 일시중단 (Ctrl+z)
SIGSUSR1 사용자를 위해 정의된 시그널

참고하면 좋은 내용들
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/Signal/SignalHow
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/Signal/SignalHow2
반응형