728x90
728x170
ps
- Process Status
- 동작 중인 프로세스의 상태를 출력해주는 명령
- ps의 옵션
- 전통적인 유닉스인 System V, BSD, GNU에 따라 결과가 다르게 나타나고, 표기법에도 차이를 보임.
- System V 계열
- 옵션 사용 시, 1개의 대시(Dash, -)를 사용함.
- BSD 계열
- 옵션 사용 시, 대시(-)를 사용하지 않음.
- GNU 계열
- 옵션 사용 시, 2개의 대시(--)를 사용함.
- System V 계열
- 전통적인 유닉스인 System V, BSD, GNU에 따라 결과가 다르게 나타나고, 표기법에도 차이를 보임.
- 원하는 프로세스 상태를 출력하려면 정확한 옵션 사용이 중요함.
- 예) ps -a 와 ps a 는 전혀 다른 결과를 출력함.
- 특히, 동작중인 전체 프로세스를 출력하는 경우 System V 계열과 BSD 계열의 옵션을 정확히 사용해야 함.
사용법
ps [option]
주요 옵션
옵션 | 설명 |
a | - 터미널과 연관된 프로세스를 출력하는 옵션 - 보통 x 옵션과 연계하여 모든 프로세스를 출력할 때 사용 - (BSD 계열) |
u | 프로세스의 소유자(User)를 기준으로 출력 |
x | - 데몬 프로세스처럼 터미널에 종속되지 않는 프로세스 출력 - 보통 a 옵션과 결합하여 모든 프로세스를 출력할 때 사용 |
l | - 프로세스의 정보를 길게(Longly) 보여주는 옵션 - 우선순위와 관련된 PRI와 NI 값을 확인할 수 있음. |
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 |