Linux_System

[Linux]Process(1)_ps

Galahaad 2022. 11. 5. 15:37

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 '''실행중인 모든 프로세스의 상속관계를 기반으로 자세히 확인'''

 

명령어 'ps'에 옵션 '-aux'를 함께 사용

해당 출력내용의 상단부를 보면 필드별로 나누어진 모습을 볼 수 있는데,

 

- 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) : 유휴(쉬고있는) 프로세스

 

명령어 'ps'에 옵션 '-ef'를 함께 사용

'-aux' 옵션을 사용했을 때와는 필드에 중복되지 않는 새로운 정보가 표기되는 것을 확인할 수 있다.

 

- PPID(Parent Process ID) : 부모 프로세스의 ID

- C : 프로레스의 CPU 점유 상태

- STIME : 프로세스가 시작된 시간

- TTY(TeleTYpewriter) : 프로세스가 실행되고 있는 콘솔

 

등을 확인할 수 있다.