[Linux] ps 명령어

2021. 11. 10. 23:44·Computer/ETC
728x90
728x90

linux에서 현재 동작하고 있는 process들에 대한 정보(목록 및 상태)를 보여줌.

 

프로세스의 상태 (STAT)는 다음의 값과 의미를 가짐.

  • R : Running 또는 Runnable(ready), 실행상태 (혹은 실행대기)
  • S : (Interruptible) Sleep. 수면상태 (실행 중이 아니고, evnet를 기다리는 중. Signal로 깨울 수 있음)
  • D : Interrupt가 불가능한 수면상태 (I/O 로 인한 suspended. Signal로 깨울 수 없음)
  • T : Stoped (job control signal 또는 debugger에 의해 중지됨. SIGSTOP, SIGTSTOP). suspended ready
  • Z : Zombie (부모프로세스에 의해 회수되지 않은 종료된 자식 프로세스)
  • < : 높은 우선순위의 프로세스 (nice하지 않은 프로세스라는 별칭 가짐, negative nice)
  • N : Nice process. 낮은 우선순위의 프로세스를 가리킴 (positive nice) 
주의: 부모에 의해 회수된 Terminated 가 이루어진 프로세스는 ps에서 나오지 않음!

 

OS에서 Process가 가지는 7-state와의 연관은 다음을 참고:

https://ds31x.tistory.com/261

 

[CE] Process State (or Process Life Cycle)

Process States (or Process Life Cycle)이는 프로세스가 가질 수 있는 상태를 가르키며, 프로세스의 life cycle을 보여준다. 프로세스는 프로그램이 실행되기 위해 메인메모리에 적재된 프로그램의 instance라

ds31x.tistory.com


ps aux

BSD 형식으로 현재 동작하고 있는 모든 프로세스에 대한 아래의 정보를 출력함.

  • a : BSD 계열 옵션으로 터미널에 연관된 모든 프로세스(현 터미널 소속이 아닌 다른 터미널에 연관된 것 포함)를 출력. x옵션과 함께 모든 프로세스 출력할 때 사용됨.
  • u : 특정 사용자의 프로세스를 확인할 때 사용되는 BSD계열 옵션. 사용자를 명시적으로 지정하지 않은 경우 현재 사용자임.
  • x : 현재 터미널이 없는 프로세스들을 포함하여 출력. a옵션과 함께 모든 프로세스를 출력할 때 사용됨.
ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.1  0.0 167272 11164 ?        Ss   05:34   0:02 /sbin/init
이하 생략.
  • USER : 프로세스의 소유자의 이름 (BSD계열), SYSTEM V계열의 경우 UID
  • PID : 프로세스 식별자, 참고로 PPID는 부모프로세스 식별자
  • %CPU : CPU 점유율 (추정치, BSD계열)
  • %MEM : Memory 점유율 (추정치, BSD계열)
  • VSZ : Virtual memory size (가상메모리 사용량, KB 혹은 페이지 단위)
  • RSS : Resident Set Size의 약어. 실제 메모리 사용량. (KB, kbytes)
  • STAT : Status code (BSD계열), SYSTEM V계열의 경우 S
  • START : 시작 시간
  • TIME : 총 수행시간(=총 CPU사용시간)
  • COMMAND : 프로세스 수행 명령어.

일반적으로 ps aux |grep python 과 같이 grep명령어를 이용하여
정보를 알고자하는 프로세스 라인만 가져와서 사용함.


ps -ef

System V 형식으로 현재 동작하고 있는 모든 프로세스 중에서 커널 프로세스을 제외한 모든 프로세스에 대한 정보를 출력함.

  • -e : 커널 프로세스 제외하고 모든 프로세스 출력. BSD의 ax 에 대응.
  • -f : full listing, 즉 full format으로 출력.
(base) ubuntu@ip-172-31-48-103:~$ ps -ef |head -n 3
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 05:34 ?        00:00:02 /sbin/init
이하 생략.
  • UID : 프로세스 소유자
  • PID : 프로세스 식별자
  • PPID : 부모 프로세스 식별자
  • C : cpu점유
  • STIME : 시작 시간
  • TTY : 관련 terminal
  • TIME : 총 수행시간 (=CPU사용시간)
  • CMD : 프로세스 수행 명령어.

일반적으로 ps aux와 함께 가장 많이 사용되는 형식임.


ps -U dsaint31 -u dsaint31

dsaint31이라는 사용자의 프로세스들을 출력. (real uid, effective uid를 의미하는 옵션)

 

  • -U dsaint31
    • real UID (RUID) 가 dsaint31 인 프로세스
  • -u dsaint31
    • effective UID (EUID) 가 dsaint31 인 프로세스

보통은 같으나, sudo 등을 통해 root의 권한을 얻은 경우, effective UID가 root가 됨.

 


ps -fp 937

937이라는 PID를 가지는 프로세스를 full format으로 출력.

(base) ubuntu@ip-172-31-48-103:~$ ps -fp 937
UID          PID    PPID  C STIME TTY          TIME CMD
ubuntu       937       1  0 05:36 ?        00:00:07 python manage.py runserver --norelo

ps -eo pid,uname,pcpu,pmem,cmd --sort -rss | head -n 3

점유하고 메모리 크기 순으로 정렬하고 상위 2개 프로세스만 출력.

  • -e : 커널 프로세스 제외하고 모든 프로세스 출력
  • -o : 출력할 column을 지정.
  • --sort : sorting수행.
  • -rss : resident set size (실제 메모리 점유량)으로 큰 것부터(decrement 뜻으로 - 기호) 보이도록 sorting (--sort 옵션과 같이 이용됨)
  • | : pipe, 앞의 명령어 수행의 결과를 뒤의 명령어의 인자로 넘겨줌.
  • head -n 3 : 위에서부터 2개만 출력됨. (첫번째는 column정보를 보여주므로 프로세스는 2개만 출력됨)
ps -eo user,rss,pmem,cmd --sort -rss|head -n 3
USER       RSS  %MEM CMD
ubuntu   565088 3.4 python manage.py runserver --noreload 0:8000
root     40464 0.2 /lib/systemd/systemd-journald

References

  • 별걸다하는 IT/리눅스 유닉스
  • oxcow119의 블로그
728x90

'Computer > ETC' 카테고리의 다른 글

[linux] 명령어 : linux 배포판 및 버전 등을 확인하기  (0) 2022.05.18
HWiNFO : PC의 HW 사양 정보 확인 SW  (0) 2022.03.10
DHCP와 고정 IP  (0) 2021.10.26
특수문자 입력 (Windows)  (0) 2021.10.26
Utils : Windows  (0) 2021.10.26
'Computer/ETC' 카테고리의 다른 글
  • [linux] 명령어 : linux 배포판 및 버전 등을 확인하기
  • HWiNFO : PC의 HW 사양 정보 확인 SW
  • DHCP와 고정 IP
  • 특수문자 입력 (Windows)
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Private Life (15)
      • Programming (206)
        • DIP (116)
        • ML (35)
      • Computer (120)
        • CE (54)
        • ETC (33)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (9)
      • ... (368)
        • Signals and Systems (115)
        • Math (176)
        • Linear Algebra (33)
        • Physics (43)
        • 인성세미나 (1)
      • 정리필요. (61)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (7)
        • PET Study 2009 (1)
        • 방사선 장해방호 (5)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    fourier transform
    Optimization
    math
    signals_and_systems
    random
    Vector
    opencv
    ML
    numpy
    cv2
    Python
    Term
    function
    Programming
    linear algebra
    SS
    인허가제도
    signal_and_system
    Probability
    SIGNAL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[Linux] ps 명령어
상단으로

티스토리툴바