Skip to content

Ps

ps(Processor Status)는 현재 실행되고 있는 프로세스의 상태를 보여주는 명령어이다.

Process State Codes

Commandline options

자주 사용하는 옵션 목록은 아래와 같다.

  • -e: 모든 프로세스를 표시.
  • -f: 전체경로로 프로세스를 표시.
  • -l: 긴포멧으로 출력.
  • -u: 실행한 유저와 실행 시간을 표시.
  • -j: "job"형식으로 표시.
  • -s: signal 포멧으로 표시.
  • -m: 메모리 정보 표시.
  • -a: 다른 유저의 프로세스 현황 표시.
  • -x: 터미널 제어 없이 프로세스 현황 보기.
  • -w: 프로세스에 대한 설명을 자세하게 표시.
  • -o: User-defined format.

보는 방법

출력되는 정보의 종류와 그 의미는 아래와 같다.

  • PID: 프로세스 아이디
  • TTY: 프로세스와 연결된 터미널 포트
  • TIME: 프로세스에서 사용한 CPU시간
  • CMD: 명령어

아래는 -u 옵션을 사용할 경우 나타나는 정보이다.

  • USER: 프로세스 사용자
  • %CPU: CPU 사용 비율
  • %MEM: 메모리 사용 비율
  • VSZ: 가상 메모리 사용량
  • RSS: 실제 메모리 사용량
  • STAT: 현재 프로세스의 상태
    • R: 실행중 혹은 실행할수 있는 상태
    • S: 수면 상태
    • I: 휴식상태
    • T: 정지상태
    • Z: 좀비 프로세스
    • W: 스왑 아웃된 상태
    • P: 페이지 대기
    • D: 디스크 대기
    • N: nice로 실행 우선순위가 낮아진 상태
  • START: 프로세스가 시작된 시각 혹은 날짜

아래는 -l 옵션을 사용할 경우 나타나는 정보이다.

  • F: 프로세스와 관련된 플래그
  • S: 프로세스 상태 (위의 STAT필드와 동일)
  • PPID: 부모 프로세스의 PID
  • C: 단기간 CPU사용률
  • PRI: 실제 실행 우선순위
  • NI: 프로세스의 nice 수치
  • WCHAN: 프로세스가 기다리고 있는 이벤트

Example

ps -ef | grep httpd
e(모든 프로세스 표시), f(전체경로 포함) 옵션을 추가한 httpd(Apache HTTPD)를 찾는다.
ps -eo state,uid,pid,ppid,rtprio,time,comm
사용자 설정 포멧으로 출력. 참고로 RTPRIO값은 실시간 우선순위 값으로 0 ~ 99 범위를 갖는다. '-'는 실시간 프로세스가 아님을 뜻한다.
ps elf
전체경로 포함하여 모든 프로세스를 긴 포맷으로 표시한다.
ps aux
실행한 유저와 실행 시간을 표시, 다른 유저의 프로세스 현황 표시, 터미널 제어 없이 프로세스 현황 보기.

=== 메모리 사용량 == Resident set size (RSS; 물리 메모리를 실제 점유하고 있는 크기) 확인 방법 목록

간단한 확인 방법
ps -ef --sort -rss
상위 10개의 프로세스 메모리 사용량
ps -ef --sort -rss | head -n 11
메모리 사용량 표시
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11
프로세스 수행명령에서 인수부분을 표시하지 않기
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm --sort -rss | head -n 11

사용률 계산 방법:

  • 명목메모리 사용률: used / total = ( total - free ) / total
  • 실질메모리 사용률: used2 / total = ( total - free2 ) / total = ( total - free - buffers - cached) / total

See also

  • top
  • htop
  • ctop
  • Resource usage
  • eDEX-UI
  • bashtop
  • procs - replacement for ps written in Rust.
  • kill - 프로세스ID를 사용하여 특정 프로세스에 시그널을 보낼 수 있다.
  • skill - USER 이름을 사용하여 특정 프로세스에 시그널을 보낼 수 있다.
  • pkill - 프로세스이름을 사용하여 특정 프로세스에 시그널을 보낼 수 있다.
  • Cache
  • ProcMon-for-Linux - Windows 용 Sysinternals 도구 모음의 고전적인 Procmon 도구를 Linux로 재구성 한 것입니다.
  • magic-trace
  • Sampler - 쉘 커맨드 실행, 시각화 및 알림 도구

Favorite site

References


  1. BASH_shell-script.pdf