2022. 1. 27. 02:32ㆍ리눅스마스터 1급 - 필기/리눅스 실무의 이해
시그널(signal)이란 어떠한 이벤트가 발생했을 때 신호(시그널)를 보내서 알려주는 것을 말합니다.
예를 들어 리눅스에서 Ctrl + z 를 누르면 프로세스를 중단 시키는 신호인 SIGTSTP를 보내는 것입니다. 이와 같은 시그널은 1번부터 62번까지 있으며 kill -l 명령어를 통해 확인 할 수 있습니다.
이들 중 주로 사용하는 시그널에 대해 알아보겠습니다.
1. SIGHUP : HangUP의 약어로 로그아웃과 같은 터미널에서 접속이 끊어졌을때 보내는 시그널입니다. 리눅스의 데몬 관련 환경 설정 파일의 변경된 내용을 변경 시키기 위해 reboot 시킬때도 이 시그널이 보내집니다.
2. SUGINT : Ctrl + c 입력 시에 보내지는 시그널입니다. 키보드로부터 오는 입력으로 실행을 중지하는 시그널입니다.
3. SIGQUIT : Ctrl + \ 입력 시에 보내지는 실행 중지 시그널입니다. 기본적으로 코어를 덤프하는 역할을 합니다.
코어 덤프 : 프로그램의 비정상적인 종료시 커널에서 해당 프로세스와 관련된 메모리 상태를 기록한 파일입니다.
4. SIGILL : 잘못된 명령을 사용했을때 보내지는 시그널입니다.
5. SIGTRAP : 트랩 추적
6. SIGABRT : ABRT(Automatic Bug Reporting Tool), 즉 자동 버그 보고 도구라는 뜻으로 시스템에 버그 발생시에 보내지는 시그널입니다.
7. SIGBUS : 버스 에러
9. SIGKILL : kill 명령의 강제로 프로세스 종료 시킬때 사용합니다. 좀비 프로세스와 같은 정상적인 방법으로 종료되지 않는 프로세스에 사용합니다.
11. SIGSEGV : 잘못된 메모리 관리로 인해 발생하는 신호로 메모리를 잘못 참조하면 보내지는 신호입니다.
15. SIGTERM : terminate 제거하다의 약자로 kill 명령의 기본 시그널입니다. 프로세스 정상 종료 시킬때 사용합니다.
17. SIGCHILD : 자식 프로세스가 stop 되거나 종료되었을 때 부모에게 전달되는 신호입니다.
18. SIGCONT : 정지된 프로세스를 다시 실행시킬 때 사용됩니다.
19. SIGSTOP : 프로세스를 정지시킬 때 사용되는 시그널이며 SIGCONT 시그널로 다시 실행시킬 수 있습니다.
20. SIGTSTP : ctrl + z 입력시에 보내지는 시그널입니다. 실행을 정지시킨뒤 다시 실행을 위해 잠시 대기시키는 시그널입니다. SIGCONT 시그널로 다시 실행시킬 수 있습니다.
kill : 프로세스에 특정한 시그널을 보내는 명령으로 PID를 사용해서 프로세스를 종료시킵니다.
kill 옵션 PID 또는 %작업번호 형식으로 사용됩니다.
-9 : 강제 종료
-15 : 기본값으로 아무런 시그널 지정 없이 사용시 전송되는 시그널입니다.
-s : 시그널을 번호가 아닌 이름으로 지정할 수 있게 해주는 옵션입니다.
killall : kill 명령어와 매우 유사하며 같은 데몬의 여러 프로세스를 한 번에 종료시킬 때 사용하는 명령으로 프로세스명을 사용합니다. 시그널을 지정하지 않으면 종료 시그널이 전송됩니다.
killall 옵션 프로세스명 형식으로 사용됩니다.
옵션
-s : 시그널을 지정합니다.
-u : 특정 사용자의 프로세스를 지정합니다.
-v : 시그널이 전송된 결과를 출력합니다.
killall -9 -u keum : keum 사용자의 모든 프로세스를 종료시킵니다.
pkill : 프로세스명을 사용해서 특정 프로세스에 시그널을 보낼때 사용합니다. kill 명령어와 마찬가지로 기본 시그널은 15번 입니다.
옵션
-u : 특정 사용자가 실행시킨 프로세스의 PID에 시그널을 보냅니다.
-U : 특정 UID를 갖는 사용자가 실행시킨 프로세스에 시그널을 보냅니다.
-g : 특정 그룹이 실행시킨 프로세스의 PID에 시그널을 보냅니다.
-G : 특정 GID를 갖는 그룹이 실행시킨 프로세스의 PID에 시그널을 보냅니다.
pgrep : 프로세스를 이름으로 검색하는 명령으로 PID 값을 출력합니다. 옵션을 사용하면 프로세스명 뿐만 아니라 사용자명과 그룹명으로도 PID 조회가 가능합니다.
옵션
-u : 특정 사용자가 실행시킨 프로세스의 PID를 조회합니다.
-U : 특정 UID를 갖는 사용자가 실행시킨 프로세스의 PID를 조회합니다.
-g : 특정 그룹이 실행시킨 프로세스의 PID를 조회합니다.
-G : 특정 GID를 갖는 그룹이 실행시킨 프로세스의 PID를 조회합니다.
'리눅스마스터 1급 - 필기 > 리눅스 실무의 이해' 카테고리의 다른 글
리눅스 시스템의 이해 - 디스크와 장치명 (0) | 2022.02.01 |
---|---|
리눅스 시스템의 이해 - 프로세스 (0) | 2022.01.31 |
리눅스 시스템의 이해 - RAID란? (0) | 2022.01.26 |
리눅스 시스템의 이해 - 셸 변수 & 환경 변수 (0) | 2022.01.24 |
리눅스 시스템의 이해 - 셸이란? (0) | 2022.01.24 |