1. 시그널 송수신
시그널 : 어떤 이벤트가 발생했음을 알려주기 위해 사용 → 구체적인 데이트 X 시그널 종류만 전달 가능
방향성이 있음어 단순히 시그널의 종류에 따라 동작을 취함.
2. 시그널의 종류
POSIX 표준에 정의되어 있음
📌 SIGABRT : 리눅스의 시스템 콜 중 하나인 abort() 함수에서 보내는 시그널 : 어떤 조건을 만족하지 않는 경우 프로그램을 의도적으로 종료 → 오류를 발견하고 수정하는데 도움
📌 SIGALRM : 프로세스가 정의한 타이머가 만료될 때 발생하는 시그널
📌 SIGCHLD : 자식 프로세스가 종료됐을 때 부모 프로세스에 전송하는 시그널
📌 SIGSTOP : 프로세스 동작을 중단하라는 시그널 → 재시작 시그널(SIGCONT)를 받으면 프로세스가 중단된 상태 그대로 시작
📌 SIGHUP : 설정 다시 읽기
📌 SIGINT : 사용자가 인터럽트 발생시켰다는 시그널
📌 SIGSEGV : 메모리 세그먼트를 사용할 때 규칙을 위반했다는 시그널
📌 SIGKILL & SIGTERM : 프로세스를 종료하라는 시그널
3. 시그널 처리 방법
기본 처리 방법 설명 주요 시그널
| 기본 처리 방법 | 설명 | 주요 시그널 |
| 프로세스 정렬 | 시스널을 수신하면 프로세스가 종료 | SIGALRM SIGHUP SIGINT SIGPIPE SIGTERM SIGKILL SIGUSR1 SIGUSR2 |
| 프로세스 중단 | 프로세스가 중단 | SIGSTOP SIGTSTP |
| 프로세스 시작 | 중단했던 프로세스가 다시 시작 | SIGCONT |
| 무시 | 프로세스가 시그널을 수신해도 아무런 행위를 하지 않음 | SIGCHILD SIGURG |
| 코어 덤프 | 코어 덤프 파일을 생성하고 프로세스는 종료. 디버거로 코어 덤프 파일을 읽어 문제가 발생한 순간의 메모리와 레지스터 상태 정보를 파악 | SIGABRT SIGBUS SIGQUIT SIGSEGV SIGFPE |
🖥️ 실습
4. 실습 : 시그널 전송하기
1. Kill로 시그널 전송하기
kill [옵션] PID
2. Killall로 시그널 전송하기
시그널을 보낼 프로세스의 PID를 입력하는 대신 프로그램 이름으로 대상 프로세스를 지정
killall [옵션] 프로그램_이름
'개발 공부 > Linux' 카테고리의 다른 글
| [Linux] Bash: 조건문과 테스트 연산자(2) (0) | 2026.03.01 |
|---|---|
| [Linux] Bash: 조건문과 테스트 연산자(1) (0) | 2026.03.01 |
| [Linux] 파일 디스크립터, 표준 스트림, IPC 정리 (0) | 2026.03.01 |
| [Linux] 컴퓨터의 작동원리와 프로세스 정리 (0) | 2026.03.01 |
| [Linux] 소유권과 권한 (0) | 2026.03.01 |
