Cohe
시그널, 쉘, 마운트, Sticky Bit 본문
728x90
반응형
1. 주요 리눅스 시그널(Signal)
리눅스에서 시그널은 프로세스 간 통신을 위한 중요한 메커니즘입니다. 주요 시그널들의 특징과 용도를 살펴보겠습니다.
시그널(Signal)은 프로세스간 통신(IPC)을 위한 소프트웨어 인터럽트, 프로세스나 운영체제가 다른 프로세스에게 어떤 이벤트가 발생했음을 알리는 메커니즘.
쓰는 법
# 프로세스 ID 확인
ps -ef | grep nginx
# nginx 설정 리로드
kill -1 `pidof nginx`
# 프로세스 상태 확인
ps aux | grep 1234
# 기본 문법
kill -[시그널번호] [프로세스ID]
프로세스 제어 관련 시그널
- SIGHUP(1): HangUP의 약자로, 터미널 연결이 끊어졌을 때 발생합니다. 데몬의 설정 파일을 다시 읽어들일 때도 사용됩니다.
- SIGINT(2): 키보드에서 [CTRL]+[C]를 눌렀을 때 발생하는 인터럽트 시그널입니다.
- SIGQUIT(3): [CTRL]+[]를 눌렀을 때 발생하며, 프로세스 종료 후 코어 덤프를 생성합니다.
- SIGKILL(9): 가장 강력한 종료 시그널로, 프로세스를 즉시 강제 종료합니다.
- SIGTERM(15): 정상적인 종료를 요청하는 시그널로, kill 명령의 기본값입니다.
오류 관련 시그널
- SIGILL(4): 잘못된 명령어 실행 시 발생합니다.
- SIGTRAP(5): 디버깅을 위한 중단점에서 발생합니다.
- SIGABRT(6): abort() 함수 호출로 인한 비정상 종료 시 발생합니다.
- SIGBUS(7): 메모리 접근 오류 시 발생합니다.
- SIGSEGV(11): 잘못된 메모리 참조 시 발생합니다.
프로세스 상태 관련 시그널
- SIGCHLD(17): 자식 프로세스가 중지되거나 종료될 때 부모 프로세스에게 전달됩니다.
- SIGCONT(12): 중지된 프로세스를 다시 실행합니다.
- SIGSTOP(19): 프로세스를 일시 중지시킵니다.
- SIGTSTP(20): [CTRL]+[Z]를 눌렀을 때 발생하는 일시 중지 시그널입니다.
정리
번호 | 이름 | 설명 | 기본처리 |
1 | SIGHUP(HUP) | HangUP의 약어로 로그아웃과 같이 터미널에서 접속이 끊겼을 때 보내지는 시그널입니다. 데몬 관련 환경 설정 파일을 변경시키고 변화된 내용을 적용하기 위해 재시작할 때 이 시그널이 사용됩니다. | 종료 |
2 | SIGINT (INT) | 키보드로부터 오는 인터럽트 시그널로 실행을 중지. [CTRL]+[c] 입력 시에 보내지는 시그널 | 종료 |
3 | SIGQUIT (QUIT) | 키보드로부터 오는 실행 중지 시그널 [CTRL] + [\] 입력 시에 보내지는 시그널입니다. 기본적으로 프로세스를 종료시킨 뒤 코어를 덤프하는 역할을 함. | 코어덤프 |
4 | SIGILL (ILL) | illegal instruction의 약자입니다. 잘못된 명령을 사용했을 때 발생합니다. | 코어덤프 |
5 | SIGTRAP (TRAP) | trace(추적), breakpoint(중지점)에서 TRAP 발생할 때 | 코어덤프 |
6 | SIGABRT (ABRT) | abort의 약자로 비정상종료 함수에 의해 발생합니다. (즉 abort 시스템 호출을 하였을 때 발생) | 코어덤프 |
7 | SIGBUS | 메모리 접근 에러시 발생하는 시그널입니다. | 코어덤프 |
9 | SIGKILL (KILL) ⇒ kill -9 | KILL! 무조건 종료, 즉 프로세스를 강제로 종료시키는 시그널! | 종료 |
11 | SIGSEGV | invalid memory reference | 종료 + 코어덤프 |
15 | SIGTERM(TERM) ⇒ kill -15 | Terminate의 약자로 가능한 정상 종료시키는 시그널로 kill 명령의 기본 시그널입니다. | 종료 |
17 | SIGCHLD (child) | 자식 프로세스가 stop 되거나 종료되었을 때 부모에게 전달되는 신호입니다. (멀티 프로세스 코딩에서 자세한 사용법은 배울 거..) | 무시 |
12 | SIGCONT (CONT) | Continue의 약자로 STOP 시그널에 의해 정지된 프로세스를 다시 실행시킬 때 사용됩니다. | 재시작 |
19 | SIGSTOP (STOP) | 터미널에서 입력된 정지 시그널입니다. SIGCONT로 재실행시킬 수 있습니다. | 중지 |
20 | SIGTSTP (TSTP) | 실행 정지 후 다시 실행을 계속하기 위해 대기시키는 시그널입니다. [CTRL] + [z]를 입력했을 때 보내지는 시그널입니다. SIGCONT로 역시 다시 실행시킬 수 있습니다. | 중지 |
29 | SIGIO | 비동기 입출력이 발생했을 경우 ! (I/O now possible!) | 종료 |
2. 리눅스 쉘의 진화
쉘은 사용자와 커널 사이의 인터페이스 역할을 하는 중요한 프로그램입니다. 시간의 흐름에 따라 다양한 쉘이 개발되었습니다.
쉘의 발전 과정
- sh (Bourne Shell)
- 최초로 개발된 POSIX 호환 쉘
- 기본적인 쉘 기능 제공
- csh (C Shell)
- 1978년 빌 조이가 개발
- C 언어 기반의 문법 채택
- 히스토리, alias 기능 도입
- tcsh
- C 쉘의 확장판
- 명령줄 완성, 편집 기능 강화
- ksh (Korn Shell)
- 유닉스 환경에서 널리 사용
- Bourne 쉘과의 호환성 유지
- 향상된 명령행 편집 기능
- bash (Bourne Again Shell)
- GNU 프로젝트의 일환으로 개발
- 현재 리눅스의 대표적인 쉘
- 강력한 스크립팅 기능 제공
- zsh
- 최신 기능들을 통합한 현대적인 쉘
- 높은 확장성과 커스터마이징 가능
3. 파일시스템 마운트 옵션
리눅스에서 다양한 저장 장치와 네트워크 파일시스템을 마운트할 때 사용되는 주요 옵션들입니다.
주요 마운트 타입
- nfs: 네트워크 파일시스템 프로토콜
- udf: 범용 디스크 포맷 (광학 미디어용)
- cifs: 윈도우즈와의 호환성을 위한 네트워크 파일시스템
- iso9660: CD-ROM 표준 파일시스템
- loop: ISO 이미지 파일을 마운트할 때 사용
4. 특수 권한: Sticky Bit
디렉토리에 설정하는 특수 권한인 sticky bit는 공유 디렉토리에서 사용자들의 파일을 보호하는 중요한 보안 기능을 제공합니다. 주로 /tmp나 /var/tmp와 같은 공용 디렉토리에서 사용됩니다.
728x90
반응형
'자격증 공부 > 리눅스 마스터 2급' 카테고리의 다른 글
리눅스마스터 2급 20231209 오답 1 (0) | 2024.11.30 |
---|---|
리눅스 시스템 관리 - 프로세스 관리와 편집기 (0) | 2024.11.16 |
리눅스 권한 (1) | 2024.11.13 |
du/df, mkfs, 파티션 ID, fsck (2) | 2024.11.12 |