새소식

자격증/리눅스마스터

[LINUX] 리눅스 마스터 2급 :: ps 명령어 정리 (옵션, 사용예시, 프로세스 상태 등)

  • -

리눅스 마스터 2급 기출에서 ps 명령어에 대한 문제가 나오니 알아두셔야 합니다

ps 란?

process status의 약자라고 합니다
즉, 프로세스의 상태를 확인할 수 있는 명령어 입니다
해당 명령어를 이용해서 현재 실행중인 프로세스목록과 상태를 알 수 있습니다

 

ps 사용

$ ps [옵션]

ps 만으로 사용가능하며 옵션과 같이 사용할 수도 있습니다
옵션은 man 페이지나 --help를 이용하여 확인해보겠습니다

 

ps 옵션

$ ps --help a

위 명령어를 입력해보면 아래와 같이 정말 많은 명령어들을 볼 수 있습니다

ps --help a 시 나오는 내용들 (더 나오는데 생략)

더 자세한 설명이 궁금하시다면 'man ps' 명령어를 이용해 확인할 수 있습니다

예제들 까지 확인할 수 있습니다 (물론 영어ㅎㅎㅎ)

 

-(대시)가 붙냐 안 붙냐에 따라서 옵션이 달라짐을 아셔야 합니다

타입 옵션 설명
프로세스 선택 a BSD 계열. '-'가 없음. 이 옵션을 사용하면 ps가 모든 프로세스를 터미널(tty)과 함께 나열하거나 x 옵션과 함께 사용할 경우 모든 프로세스를 나열합니다
프로세스 선택 -a 세션 리더 & 터미널과 연관된 프로세스를 제외하고 모든 프로세스를 보여줍니다.
프로세스 선택 -A, -e 모든 프로세스를 보여주며 -e 옵션과 동일합니다
프로세스 선택 r 현재 실행중인 프로세스만 선택해서 보여줍니다
프로세스 선택 x BSD 계열. 이 옵션을 선택하면 ps가 사용자가 소유한 모든 프로세스(같은 EUID)를 나열하거나 옵션과 함께 사용할 경우 모든 프로세스를 나열하는 것입니다. (TTY 값이 ? 인 프로세스들도 나오게 됨)
리스트로 프로세스 선택 -p 프로세스 ID를 특정해서 확인할 수 있습니다
포맷팅 u 유저중심 형식으로 보여줍니다. 프로세스가 어느 유저로 실행되었는지도 보여줍니다.
포맷팅 f Fully 포맷 형태를 보여줍니다.
포맷팅 -o 유저가 정의한 포맷팅으로 보여줍니다. (-o pid,format,state,tname,time,cmd)
쓰레드 m, -m 프로세스 다음에 스레드 정보도 보여줍니다

직접 써보시면 이런거구나 알 수 있습니다

 

ps가 보여주는 컬럼들 의미

아래 내용은 모두 꼭 외우셔야 합니다

  • USER: 프로세스를 소유한 사용자
  • PID: process ID
  • %CPU: cpu 사용률
  • $MEM: memory 사용률
  • VSZ: 가상 메모리 사용량
  • RSS: 실제 메모리 사용량
  • TTY: 프로세스를 컨트롤 하는 터미널
  • STAT: 현재 프로세스의 상태
  • START: 프로세스 시작날
  • TIME: 프로세스가 지금까지 사용한 CPU 시간
  • COMMAND: 프로세스 실행할때 사용된 CMD

 

프로세스 상태 (STAT)

  • S: interruptible sleep (event를 완료하기 위해 기다리는 상태)
  • R: Running or runnable (on run queue)
  • I: Idle kernel thread
  • Z: Zombie 프로세스 상태(죽었는데 시체만 남아있는 느낌)
  • D: Uninterruptible sleep. 입출력 기다리는 상태
  • T: job control signal에 의해 멈춰있는 상
  • 이 외에 t, W, X 상태도 존재하며 R, S, I, Z 정도 암기!!

 

ps 명령어 사용

1. ps -e (ps ax)

해당 명령어를 사용하면 모든 프로세스를 보여주게됩니다. 허나 소유자 정보는 없습니다.

 

2. ps -ef (ps aux)

위 명령어는 모든 프로세스에 대한 정보를 full-format으로 볼 수 있습니다. 프로세스의 소유자 정보까지 확인할 수 있습니다

 

3. ps -ef | grep nginx

돌고 있는 프로세스 목록을 뽑아서 그 중에 nginx 가 정상적으로 돌고 있나 확인하는 등
grep과 묶어서 다양하게 이용할 수도 있습니다

 

4. ps -fp [pid]

가끔 특정 프로세스의 pid를 이용해 확인할 수 있습니다

 

5. ps -U root -u root u

man 페이지에도 나온 예시로 RUID와 EUID를 이용해 특정 사용가 중심으로 프로세스를 확인할 수 있습니다

-U: RUID, -u: EUID, u: user정보 출력

 

6. kill -9 [pid]

kill을 이용해 죽이기 위해서 ps 명령어를 이용해 pid를 확인하기도 합니다

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.