在Linux操作系统中,ps命令(process status)可以显示当前运行的进程。它能捕获系统在某一事件的进程状态。如果你想不断更新查看的这个状态,可以使用top命令。
语法
ps [options]
常用命令
1. 查看当前用户下的所有进程。
ps
PID TTY TIME CMD
15779 pts/0 00:00:00 bash
15798 pts/0 00:00:00 ps
2. 查看所有进程并根据名称过滤。
ps -A|grep firewalld
6519 ? 00:00:02 firewalld
3. 查看所有以root用户运行的详细进程信息。
ps -U root -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 6206 0.0 0.1 62044 1076 ? Ssl Jan02 0:00 /sbin/auditd
root 2 0.0 0.0 0 0 ? S Jan02 0:00 [kthreadd]
......
4. 以BSD格式显示所有进程。
ps axu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 6206 0.0 0.1 62044 1076 ? Ssl Jan02 0:00 /sbin/auditd
root 2 0.0 0.0 0 0 ? S Jan02 0:00 [kthreadd]
......
列名
内容
%CPU
进程正在使用多少个CPU
%MEM
进程正在使用多少内存
ADDR
进程的内存地址
C或CP
CPU使用率和调度信息
COMMAND*
进程名,包括参数(如果有的话)
NI
nice值
F
标志
PID
进程ID
PPID
父进程ID
PRI
进程优先级
RSS
真实内存用量
S or STAT
进程状态码
START or STIME
进程启动时间
SZ
虚拟内存用量
TIME
总CPU用量
TT或TTY
与进程相关的终端
UID或USER
进程所有者的用户名
WCHAN
进程所等待事件的内存地址
5. 按树形目录显示进程信息。
ps -e --forest
PID TTY TIME CMD
2 ? 00:00:00 kthreadd
3 ? 00:00:01 \_ ksoftirqd/0
5 ? 00:00:00 \_ kworker/0:0H
7 ? 00:00:00 \_ migration/0
......
6. 查看CPU或内存高的进程。
查看CPU占用情况
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
查看内存占用情况
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
PID PPID CMD %MEM %CPU
6519 1 /usr/bin/python -Es /usr/sb 3.3 0.0
7111 1 /usr/bin/python2 -Es /usr/s 1.9 0.0
6394 1 /usr/lib/polkit-1/polkitd - 1.2 0.0
......
7. 使用watch工具结合ps命令实时监控内存使用情况。
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Every 1.0s: ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
PID PPID CMD %MEM %CPU
6519 1 /usr/bin/python -Es /usr/sb 3.3 0.0
7111 1 /usr/bin/python2 -Es /usr/s 1.9 0.0
......
注:Ctrl+c 或 Ctrl+g退出watch终端。
注:ps命令只能查看静态信息,如果需要实时查看系统运行情况,可以使用htop、top或者glances等工具。