[Linux]Process(1)_ps
PS(Process Status)
프로세스는 실행 중인 프로그램을 나타내는 추상적인 개념으로,
예를 들어 사용자가 HDD(Non-Volatile Memory)와 같은 저장장치에 있는 프로그램을 실행하게 되면
프로그램이 프로세스 상태로 메모리에 적재되어 실행되며, 모든 프로세스는 부모 프로세스, 자식 프로세스로 분류되게 된다.
리눅스에서는 init(~CentOS6), systemd(CentOS7~)와 같은 시스템 최초의 프로세스로 "시스템 초기화 프로세스"라고 불린다.
프로세스 상태 조회에 자주 사용되는 명령어 'ps'를 알아보자
■ 명령어 'ps'의 활용방식
▼ 주로 사용되는 옵션은 코드블럭을 참조
ps -f '''현재 실행되는 프로세스에 관해 자세히 출력'''
ps -a '''다른 사용자의 프로세스까지 함께 출력'''
ps -u '''해당 프로세스를 실행중인 사용자의 정보와 시간을 함께 출력'''
ps -x '''백그라운드 프로세스까지 출력'''
ps -aux '''리소스 사용률을 기반으로 프로세스의 상태를 확인'''
ps -ef '''실행중인 모든 프로세스의 상속관계를 기반으로 자세히 확인'''
해당 출력내용의 상단부를 보면 필드별로 나누어진 모습을 볼 수 있는데,
- USER : 프로세스의 소유자
- PID(Process ID) : 프로세스의 번호
- %CPU : 프로세스가 CPU를 차지하는 비율
- %MEM : 프로세스가 메모리를 점유하는 비율
- VSZ(Virtual Set siZe) : 프로세스에 할당된 가상 메모리의 크기
- RSS(Resident Set Size) : 프로세스가 현재 사용하는 메모리 비율
- STAT : 프로세스의 상태
- START : 프로세스가 시작된 시간
- TIME : 프로세스의 총 실행 시간
- COMMAND : 프로세스를 실행시킨 명령
▶ 프로세스의 상태(status)를 알려주는 필드 'STAT' 값의 의미
- R(Run/Runable) : 프로세스가 실행중 또는 실행가능
- D(in Disk wait) : 입출력이 완료될 때까지 깨울 수 없는 상태(수면상태)
- S(Sleeping) : 대기 중, 수면상태(전환 가능한 상태)
- T(sTopped) : 외부 시그널로 인해 일시 정지된 상태
- Z(Zombie) : 부모 프로세스가 종료 시그널을 정상적으로 수신 못해, 수습되지 않고 남은 상태
- < : 우선순위가 높은 프로세스
- N : 우선순위가 낮은 프로세스
- I(Idle) : 유휴(쉬고있는) 프로세스
'-aux' 옵션을 사용했을 때와는 필드에 중복되지 않는 새로운 정보가 표기되는 것을 확인할 수 있다.
- PPID(Parent Process ID) : 부모 프로세스의 ID
- C : 프로레스의 CPU 점유 상태
- STIME : 프로세스가 시작된 시간
- TTY(TeleTYpewriter) : 프로세스가 실행되고 있는 콘솔
등을 확인할 수 있다.