Post

Linux ps

1. ps

프로세스 정보를 표시한다.

2. 주요 옵션

옵션내용
-e현재 실행중인 모든 프로세스를 표시한다.
-f유저명, 시작시간을 표시한다.
-u유저명으로 검색한다.
-o사용자가 설정한 포맷으로 출력한다.
-p [pid]지정한 프로세스 정보만 표시한다.
-e f프로세스의 관계를 트리형식으로 표시한다.

3. 사용예제

1) 현재 실행중인 모든 프로세스 표시

1
2
3
4
5
$ ps -e
  PID TTY          TIME CMD
    1 ?        00:00:09 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:45 migration/0

2) 특정 프로세스 표시

1
2
3
$ ps -p 18299
  PID TTY          TIME CMD
18299 ?        04:14:12 java

3) 유저명 시작 시간 표시

1
2
3
4
$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
user     26723 26722  0 01:18 pts/3    00:00:00 -bash
user     31323 26723  0 02:12 pts/3    00:00:00 ps -f

4) 프로세스 관계 트리 표시

-를 이용한 옵션과 별도로 f를 이용하여 처리한다. -e 옵션으로 모든 프로세스가 표현되고, f로 트리관계가 표현된다.

1
2
3
4
5
6
7
$ ps -e f 
  PID TTY      STAT   TIME COMMAND
 1060 ?        Ss     0:03 /usr/sbin/sshd
26674 ?        Ss     0:00  \_ sshd: AAAA [priv]
26676 ?        S      0:00      \_ sshd: AAA@pts/1
26677 pts/1    Ss+    0:00          \_ -bash
31544 pts/3    R+     0:00            \_ ps -e f

5) 사용자가 설정한 포맷

-o 옵션을 이용해서 현재 실행중인 프로세스의 정보중 원하는 것만 확인할 수 있다.

옵션내용
user유저명
pid프로세스 ID
ppid부모 프로세스 ID
rss실제 메모리 사용량
pmem메모리 사용률
pcpuCPU 사용률
timeCPU 사용시간
etime총 실행 시간
cmd커맨드
1
2
3
4
5
6
7
8
# 메모리 사용량을 기준으로 정렬하면서 출력 
$ ps -eo user,pid,ppid,rss,pmem,pcpu,time,etime,cmd --sort -rss
USER       PID  PPID   RSS %MEM %CPU     TIME     ELAPSED CMD
root      4055     1 718308  4.6 0.0 03:52:29 181-01:30:24 /usr/lib/jvm/java/bin/java -Xmx1024m 
hhhh     16973     1 562360  3.6 0.0 07:04:11 406-17:48:34 /usr/lib/jvm/java-openjdk/bin/java -X
hhhh     16406     1 498624  3.2 0.0 02:52:46 172-20:17:29 /usr/lib/jvm/java-openjdk/bin/java -X
mmmmmm    6382     1 481460  3.1 0.0 08:01:16 442-20:16:10 /usr/lib/jvm/java-openjdk/bin/java -D
ffff     28203     1 430040  2.7 0.2 13:12:58 250-18:56:11 /usr/lib/jvm/java-openjdk/bin/java -D

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.