728x90
ps 명령어
ps 명령어는 현재 실행 중인 프로세스 정보를 보여주는 리눅스/유닉스 명령어입니다. ps 명령어는 사용자, 프로세스 ID, CPU 사용량, 메모리 사용량 등 다양한 정보를 제공합니다.
free, kill, pkill, pgrep, pmap, ps, pwdx, Skill, slabtop, snice, sysctl, tload, top, uptime, vmstat, w 및 watch가 포함되어 있습니다.
procps 패키지 설치
- CentOS
sudo yum install procps-ng
- Ubuntu
sudo apt install procps-ng
기본 구문
ps [옵션]
주요 옵션
- -e : 시스템 전체의 모든 프로세스 출력.
- -f : Full-format 출력. 상세한 정보를 보여줍니다.
- -l : Long-format 출력. 상세한 정보와 함께 보여줍니다.
- -u 사용자 : 특정 사용자의 프로세스만 출력.
- -a : 모든 사용자의 프로세스 출력.
- -x : 데몬 프로세스까지 모두 출력.
- -p 프로세스ID : 특정 프로세스 ID의 정보 출력.
사용 예시
1. 모든 프로세스 출력
ps aux
$ ps aux | head -n 5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 100392 11484 ? Ss 17:26 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 17:26 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 17:26 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 17:26 0:00 [rcu_par_gp]
2. 현재 사용자의 프로세스 출력
ps u
$ ps u | head -n 5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 751 0.0 0.0 6172 1072 tty1 Ss+ 17:26 0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
root 1199 0.0 0.0 11496 5584 pts/0 S+ 21:21 0:00 sudo su -
root 1200 0.0 0.0 11496 884 pts/1 Ss 21:21 0:00 sudo su -
root 1201 0.0 0.0 10216 4468 pts/1 S 21:21 0:00 su -
728x90
3. 특정 프로세스 ID의 정보 출력
ps -p 1234
$ ps -p 1
PID TTY TIME CMD
1 ? 00:00:01 systemd
4. 특정 사용자의 프로세스 출력
ps -u username
$ ps -u root | head -n 5
PID TTY TIME CMD
1 ? 00:00:01 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
5. 전체 시스템의 프로세스 트리 출력
pstree
$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─agetty
├─cron
├─dbus-daemon
├─irqbalance───{irqbalance}
├─multipathd───6*[{multipathd}]
├─mysqld───36*[{mysqld}]
├─named───9*[{named}]
├─networkd-dispat
├─nginx───4*[nginx]
├─polkitd───2*[{polkitd}]
├─rsyslogd───3*[{rsyslogd}]
├─sshd───sshd───sshd───bash───sudo───sudo───su───bash───pstree
├─systemd───(sd-pam)
├─systemd-journal
├─systemd-logind
├─systemd-network
├─systemd-timesyn───{systemd-timesyn}
├─systemd-udevd
├─udisksd───4*[{udisksd}]
└─unattended-upgr───{unattended-upgr}
6. 프로세스 정보를 실시간으로 갱신
watch ps aux
Every 2.0s: ps aux node1: Wed Nov 15 21:38:54 2023
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 100392 11484 ? Ss 17:26 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 17:26 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 17:26 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 17:26 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I< 17:26 0:00 [slub_flushwq]
root 6 0.0 0.0 0 0 ? I< 17:26 0:00 [netns]
root 8 0.0 0.0 0 0 ? I< 17:26 0:00 [kworker/0:0H-events_highpri]
7. 현재 시스템에서 실행 중인 프로세스를 트리 구조로 표시
ps axwf
$ ps axwf
...
795 ? Ss 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
796 ? S 0:00 \_ nginx: worker process
797 ? S 0:00 \_ nginx: worker process
798 ? S 0:00 \_ nginx: worker process
799 ? S 0:00 \_ nginx: worker process
- a: 현재 로그인한 사용자와 관계 없이 모든 사용자의 프로세스를 보여줍니다.
- x: 터미널에 연결되어 있지 않은 프로세스도 표시합니다.
- w: 더 넓은 출력 형식을 사용하여 보기 좋게 출력합니다.
- f: 프로세스 간 부모-자식 관계를 트리 구조로 표시합니다.
참고
- ps 명령어는 다양한 옵션을 지원하며 사용자의 요구에 따라 다양한 정보를 출력할 수 있습니다.
- 일부 시스템에서는 BSD 스타일 옵션과 UNIX 스타일 옵션을 지원하므로 시스템에 따라 옵션 사용법이 조금 다를 수 있습니다.
728x90
'리눅스' 카테고리의 다른 글
ngrep 명령어 (0) | 2023.11.16 |
---|---|
procps와 procps-ng의 주요 차이점 (0) | 2023.11.15 |
SSH 로그인 시 Google OTP를 사용하는 2차 인증을 적용하는 방법 (0) | 2023.11.15 |
MySQL에서 특정 사용자가 특정 외부 IP 주소에서만 접속할 수 있도록 설정하는 방법 (0) | 2023.11.13 |
우분투에서 Let's Encrypt와 Nginx를 사용하여 SSL 인증서를 설정하는 방법 (1) | 2023.11.13 |