728x90
반응형
프로세스 : 현재 시스템에서 실행중인 프로그램
프로세스의 부모-자식 관계
- 프로세스는 부모-자식 관계를 가지고 있다.
- 부팅할 때, 스케줄러가 실행한 프로세스인 systemd와 kthreadd 프로세스를 제외하면 모든 프로세스는 부모 프로세스를 갖고 있다.
- 자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료한다.
프로세스 종류
- 데몬 프로세스
- 특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행한다.
- ex) 웹 서버 (아파치 등 ..)
- 고아 프로세스
- 자식 프로세스가 아직 실행 중인데 부모 프로세스가 먼저 종료된 자식 프로세스는 고아 프로세스이다.
- 1번 프로세스가 고아 프로세스의 새로운 부모 프로세스가 되어 고아 프로세스의 작업 종료 지원한다.
- 좀비 프로세스
- 자식 프로세스가 실행을 종료했는데도 프로세스 테이블 목록에 남아있는 경우를 말한다.
- 좀비 프로세스는 프로세스 목록에 defunct 프로세스라고 나오기도 한다.
- 좀비 프로세스가 증가하면 프로세스 테이블의 용량이 부족해서 일반 프로세스가 실행되지 않을 수도 있다.
프로세스 목록 보기
ps
- 현재 실행중인 프로세스의 목록을 보는 명령
- 유닉스 옵션 : 묶어서 사용할 수 있고, 붙임표로 시작한다. (ex: -ef)
- BSD 옵션 : 묶어서 사용할 수 있고, 붙임표로 시작하지 않는다. (ex: aux)
- GNU 옵션 : 붙임표 두 개로 시작한다. (ex : --pid)
옵션
- -e : 시스템에서 실행중인 모든 프로세스의 정보 출력
- -f : 프로세스의 자세한 정보를 출력
- -p pid : pid로 지정한 특정 프로세스의 정보 출력
- -a : 터미널에서 실행한 프로세스 정보 출력
- -u : 프로세스 소유자 이름, CPU 사용량, 메모리 사용량 등 상세 정보 출력
- -x : 시스템에서 실행중인 모든 프로세스의 정보 출력
현재 단말기의 프로세스 목록 출력 : ps
- 현재 셸이나 터미널에서 실행한 사용자 프로세스에 대한 정보 출력한다.
프로세스 상세 정보 출력 : ps -f
- PPID와 터미널 번호, 시작 시간 등을 출력한다.
항목
|
의미
|
항목
|
의미
|
UID
|
프로세스를 실행한 사용자 ID
|
STIME
|
프로세스의 시작 날짜나 시간
|
PID
|
프로세스 번호
|
TTY
|
프로세스가 실행된 터미널의 종류와 번호
|
PPID
|
부모 프로세스 번호
|
TIME
|
프로세스 실행 시간
|
C
|
CPU 사용량
|
CMD
|
실행되고 있는 프로그램 이름 (명령)
|
터미널에서 실행한 프로세스 정보 출력 : ps -a
문자
|
의미
|
비고
|
R
|
실행중 (running)
|
|
S
|
인터럽트가 가능한 대기(stop)상태
|
|
T
|
작업 제어에 의해 정지된(stopped) 상태
|
|
Z
|
좀비 프로세스 (defunct)
|
|
STIME
|
프로세스의 시작 날짜나 시간
|
|
s
|
세션 리더 프로세스
|
BSD 형식
|
+
|
포그라운드 프로세스 그룹
|
|
l (소문자 L)
|
멀티 스레드
|
터미널에서 실행한 프로세스의 상세 정보 출력하기 : ps -au
항목
|
의미
|
항목
|
의미
|
USER
|
사용자 계정 이름
|
VSZ
|
사용중인 가상 메모리의 크기 (KB)
|
%CPU
|
퍼센트로 표시한 CPU 사용량
|
RSS
|
사용중인 물리적 메모리의 크기 (KB)
|
%MEM
|
퍼센트로 표시한 물리적 메모리 사용량
|
START
|
프로세스의 시작 시간
|
전체 프로세스 목록을 출력 : ps -ef
- -e 옵션은 시스템에서 실행 중인 모든 프로세스를 출력한다.
- TTY의 값이 ?인 것은 대부분 데몬으로 시스템이 실행한 프로세스이다.
728x90
반응형