별의 공부 블로그 🧑🏻‍💻
728x90
728x170

ps

  • Process Status
  • 동작 중인 프로세스의 상태출력해주는 명령
  • ps의 옵션
    • 전통적인 유닉스System V, BSD, GNU에 따라 결과가 다르게 나타나고, 표기법에도 차이를 보임.
      • System V 계열
        • 옵션 사용 시, 1개대시(Dash, -)를 사용함.
      • BSD 계열
        • 옵션 사용 시, 대시(-)를 사용하지 않음.
      • GNU 계열
        • 옵션 사용 시, 2개대시(--)를 사용함.
  • 원하는 프로세스 상태를 출력하려면 정확한 옵션 사용이 중요함.
    • 예) ps -a ps a 는 전혀 다른 결과를 출력함.
  • 특히, 동작중인 전체 프로세스를 출력하는 경우 System V 계열과 BSD 계열의 옵션을 정확히 사용해야 함.

 

 

사용법

ps [option]

 

주요 옵션

옵션 설명
a - 터미널과 연관된 프로세스를 출력하는 옵션
- 보통 x 옵션과 연계하여 모든 프로세스를 출력할 때 사용
- (BSD 계열)
u 프로세스의 소유자(User)를 기준으로 출력
x - 데몬 프로세스처럼 터미널에 종속되지 않는 프로세스 출력
- 보통 a 옵션과 결합하여 모든 프로세스를 출력할 때 사용
l - 프로세스의 정보를 길게(Longly) 보여주는 옵션
- 우선순위와 관련된 PRINI 값을 확인할 수 있음.
e 해당 프로세스에 관련된 환경 변수 정보를 함께 출력
f 프로세스간의 상속 관계를 트리 구조로 보여줌.
p - 특정 PID를 지정할 때 사용
- (BSD 계열)
-A - 모든(All) 프로세스 출력
- -e 옵션과 같음. (Entire)
- (System V 계열)
-e - 모든 프로세스 출력
- -A 옵션과 같음.
-a 세션 리더(일반적으로 로그인 셀)을 제외하고 터미널에 종속되지 않은 모든 프로세스 출력
-f - 유닉스 스타일로 출력해주는 옵션
- UID, PID, PPID 등이 함께 표시됨.
-C 프로세스명 지정한 프로세스만 보여줌.
-o 값 - 출력 포멧을 지정하는 옵션
- 값으로는 pid, tty, time, cmd 등을 지정할 수 있음.
-p - 특정 PID를 지정할 때 사용
- (System V 계열)
-u - 특정 사용자의 프로세스 정보를 확인할 때 사용
- 사용자를 지정하지 않으면 현재 사용자를 기준으로 정보 출력

 

사용 예

예 1
  • 사용자와 관련된 프로세스 출력
$ ps

 

예 2
  • 시스템에 동작중인 모든 프로세스를 소유자 정보와 함께 출력 (BSD 계열)
$ ps aux

 

예 3
  • 시스템에 동작중인 모든 프로세스를 출력 (System V 계열)
    • 한 페이지씩 화면에 출력되도록 함.
$ ps -ef | more

 

예 4
  • 동작 중인 프로세스 중에 sendmail 이라는 이름의 프로세스를 찾아서 출력
$ ps aux | grep sendmail

 

예 5
  • 최초의 프로세스인 init은 PID 번호가 1
    • CentOS 7의 경우 systemd가 최초의 프로세스
$ ps aux | head
더보기
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.5 193656  5660 ?        Ss    2021   3:33 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S     2021   0:03 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<    2021   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S     2021   0:06 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S     2021   0:01 [migration/0]
root         8  0.0  0.0      0     0 ?        S     2021   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S     2021   4:59 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<    2021   0:00 [lru-add-drain]
root        11  0.0  0.0      0     0 ?        S     2021   0:54 [watchdog/0]
  • USER : 프로세스 소유자의 이름 (BSD 계열)
  • UID : 프로세스 소유자의 이름 (BSD 계열)
  • PID : 프로세스 식별 번호
  • %CPU : CPU 사용 비율의 추정치 (BSD 계열)
  • %MEM : 메모리 사용 비율의 추정치 (BSD 계열)
  • VSZ : K 단위 또는 페이지 단위의 가상 메모리 사용량
  • RSS : 실제 메모리 사용량(Resident Set Size)
  • TTY : 프로세스와 연결된 터미널
  • STAT : 현재 프로세스의 상태 코드
  • START : 프로세스 시작 시간 또는 날짜
  • TIME : 총 CPU 사용 시간
  • COMMAND : 프로세스의 실행 명령행
  • STIME : 프로세스가 시작된 시간 혹은 날짜 (System V 계열)
  • C, CP
    • 짧은 기간 동안의 CPU 사용률
    • C : System V 계열
    • CP : BSD 계열
  • F
    • 프로세스의 플래그
    • 1 : exec 호출 없이 fork 된 경우
    • 4 : 슈퍼 유저 권한 사용자
  • PPID : 부모 프로세스의 PID
  • PRI : 실제 실행 우선순위
  • NI : nice 우선순위 번호

 

프로세스 상태 코드인 STAT의 주요 값

  • R(Running)
    • 실행 중 혹은 실행될 수 있는 상태
    • 실행 Queue 내에 존재
  • S(Sleeping)
    • 인터럽트에 의한 sleep 상태
    • 특정 이벤트가 끝나기를 기다리는 상태
  • D(Disk Wait) : 디스크 I/O에 의해 대기하고 있는 상태
  • T(Traced or Stopped) : 정지된 상태(suspend)
  • W
    • 페이징(paging) 상태
    • 2.6.xx 커널 이후로는 사용 안함.
  • Z(Zombie)
    • 좀비(zombie) 프로세스
    • 작업이 종료되었으나 부모 프로세스로부터 회수되지 않아 메모리를 차지하고 있는 상태
  • X
    • 죽어있는 상태
    • 상태 값으로 볼 수 있음.
  • <
    • 우선순위가 인위적으로 높아진 상태
    • 사용자에 의해 nice된 것은 아님
  • N(Nice) : 다른 사용자에 의해 우선순위가 낮아진 상태
  • L
    • 메모리 안에서 페이지가 잠금된 상태
    • 보통 real-time과 일반적 I/O 에 의해 발생
  • s : session Leader
  • | : 멀티 쓰레드 상태 (CLONE_THREAD)
  • + : 포어 그라운드 프로세스 그룹

 

 

예 6
  • PID가 1222인 프로세스의 이름 출력
$ ps -p 1222 -o comm=
728x90
그리드형(광고전용)

'System Software > Linux' 카테고리의 다른 글

[리눅스 명령어] killall  (0) 2022.03.10
[리눅스 명령어] kill  (0) 2022.03.10
[리눅스 명령어] top  (0) 2022.03.10
[리눅스 명령어] pstree  (0) 2022.03.10
[리눅스 명령어] ln  (0) 2022.03.10
[리눅스 명령어] setquota  (0) 2022.03.10
[리눅스 명령어] quota  (0) 2022.03.10
[리눅스 명령어] repquota  (0) 2022.03.10
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖