반응형
리눅스 프로세스의 구조와 관리
| 리눅스 시스템을 운영하다 보면 프로그램과 프로세스라는 용어를 자주 접하게 된다. 얼핏 비슷해 보이지만 이 둘의 차이를 명확히 아는 것이 중요하다. 오늘은 리눅스 터미널 환경에서 프로세스가 어떻게 생성되고 관리되는지 정리 해본다 |
프로그램이 프로세스가 되는 과정
| 프로그램: 보조 기억 장치에 저장된 실행 파일 상태 (ex. /etc/passwd, /bin/bash 등이 프로그램이라고 보면 됨) 프로세스: 프로그램이 메모리에 올라가 CPU에 의해 실행 중인 상태 * 부모 프로세스와 PID가 반드시 있음 * PID(Process ID): 프로세스가 실행되면 운영체제로부터 고유 번호를 할당 받음. PID를 할당받지 못하면 프로그램은 실행 될 수 X |
💡참고사항
| 실행되면 안되는 프로그램들이 있다면 부모가 누구인지 추적함. 프로세스는 1:1 로 매칭이 된다. Filezilla(클라이언트)들이 많더라도 1:1 매칭이므로 vsftpd(서버)는 메모리에 복사해서 사용해야 한다. |
프로세스의 계층 구초(부모와 자식)
리눅스의 모든 프로세스는 부모-자식 관계를 맺으며 실행됨
| 부모 프로세스: 다른 프로세스를 실행시킨 주체 (ex. ls(자식)를 실행한 /bin/bash(부모) PID 1: 시스템이 부팅될때 가장 먼저 실행되는 프로세스. 모든 프로세스의 조상 PID 0: 커널 내부의 프로세스. 사용자가 접근할 수 없는 영역 pstree: 프로세스들이 어떻게 연결되어 실행 중인지 트리 구조로 한눈에 보여주는 명령어 핵심포인트: 보안 문제가 생겼을때 해당 프로세스의 부모 프로세스를 추적하면 원인 파악이 가능 |
프로세스 격리와 컨테이너
| 최근 많이 쓰이는 컨테이너 기술은 프로세스의 특성을 활용한 것 컨테이너 환경에서 프로세스가 자신을 PID 1번이라고 인식하도록 격리시켜 실행 한다. 독립된 환경을 만들어 안전하게 프로그램을 돌리는 방식 * 프로그램을 컨테이너로 실행 |
실행방식: 포그라운드와 백그라운드
| 터미널에서 프로그램을 어떻게 구동하느냐에 따라 종류가 두 가지로 나뉜다 포그라운드: 터미널을 점유하는 방식. 프로그램이 끝날 때까지 다른 명령어를 입력할 수 없음 백그라운드: 터미널을 점유하지 않고 뒤에서 실행되는 방식으로 터미널에 영향을 안 미친다. 보통 서버 프로그램(데몬)이 이 방식으로 돌아간다 * 주의: 터미널 종료시 백그라운드 프로세스도 함께 종료됨 |

프로세스 추적, 제어 명령어
| ps(Proccess Status) 현재 어떤 프로세스가 떠 있는지 확인 # ps -f: 프로세스의 상세정보(부모 PID 등) 를 추적 # ps -ef: 시스템 내의 모든 프로세스를 나열 kill - 현재는 잘 사용하지 않고 있음 프로세스에 특정 신호를 보내 제어 # kill -l 보낼 수 있는 시그널 목록을 확인 # kill -l 목록에서 SIGKILL(9번): 프로그램이 응답하지 않을 때 강제로 종료하는 가장 강력한 신호 |
'Infra & Security Eng > Linux Fundamentals' 카테고리의 다른 글
| NFS 개념, 특징, 옵션, 권한 매핑(UID와 GID) (0) | 2026.02.05 |
|---|---|
| 도메인 네임의 계층적 구조와 특징, DNS 재귀적 질의 과정, DNS 구조, DNS 서버 종류 (0) | 2026.01.26 |
| RPM과 DNF 관련, cdrom vsftpd 다운로드 받기 (0) | 2026.01.20 |
| 파일시스템의 이해 (파일 시스템, 파티션 종류, 디스크 장치 파일, 디스크 사용 과정, 파티셔닝, 마운트) (0) | 2026.01.06 |
| 파일구조, 파일 종류, 퍼미션, 퍼미션 제어, SUID, SGID, Sticky Bit,chown, chgrp, umask (0) | 2025.12.30 |