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와의 연관은 다음을 참고:
[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계열의 경우UIDPID: 프로세스 식별자, 참고로PPID는 부모프로세스 식별자%CPU: CPU 점유율 (추정치, BSD계열)%MEM: Memory 점유율 (추정치, BSD계열)VSZ: Virtual memory size (가상메모리 사용량, KB 혹은 페이지 단위)RSS: Resident Set Size의 약어. 실제 메모리 사용량. (KB, kbytes)STAT: Status code (BSD계열), SYSTEM V계열의 경우SSTART: 시작 시간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: 관련 terminalTIME: 총 수행시간 (=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
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 |