用途:回报当前运行进程的快照
用法:ps 选项
用于列出当前系统中运行的进程(有PID)的信息,列出的是这些进程的快照,也就是执行ps命令这个时刻的状态,如果要动态显示进程信息,用top命令
Linux中进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中,受阻,在等待某个条件的形成或收到信号)
3. 不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)
4. 僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行)
ps aux命令输出结果的STAT列为进程的状态码,有如下几种:
R (可)运行
S 睡眠,等待信号或输入
D 不可中断睡眠(等待),通常是等待输入或输出完成
T 停止
Z 僵死
N 低优先级任务
s 进程是session leader
+ 进程属于前台进程组
l 进程是多线程的
< 高优先级任务
ps aux显示结果解释:
USER 进程属主
PID 进程ID
PPID 父进程ID
%CPU 进程CPU使用率
%MEM 进程内存使用率
NI 进程NICE值,越大则CPU占用时间越少
VSZ 进程虚拟大小,系统分配的内存大小
RSS 驻留中页大小,实际使用的物理内存大小
TTY 终端
STAT 进程状态
START 进程启动时间
TIME 进程消耗的CPU时间
COMMAND 进程的命令
选项:
-A 列出所有进程,等同-e
-N --deselect 排除符合指定条件的程序
T 列出和当前登录终端有关的所有进程,等同于ps不加参数
-a 排除session leader和其本身都与当前登录终端无关的进程
a 列出所有用户终端的进程,不受BSD模式下只显示自己终端的限制
-d 列出除了sesion leader外的所有进程
-e 列出所有进程
g 真正的全部,包括session leader
-l 显示长格式,包括进程flag,进程STAT,UID,PID,PPID,CPU使用率,CPU优先级,内存地址,内存占用,WCHAN,TTY,CPU使用时间,命令
l 显示BSD模式长格式
r 只显示当前正在运行的
x 移除BSD模式下显示的进程必须有tty终端的限制,也列出没有tty的进程
指定对象:
-C cmdlist 显示指定命令的进程
-G grplist 显示指定real GID或组名的进程
U userlist 显示指定effective UID或用户名的进程
-U userlist 显示指定real UID或用户名的进程
-g grplist 显示指定session或者指定有效组名的进程
p pidlist 显示指定PID进程,同-p
-p pidlist 显示指定PID进程
q pidlist 快速显示指定PID进程,ps命令只读取程序跟PID有关的必要信息
-q pidlist 同q
-s sesslist 显示指定session ID的进程
t ttylist 显示指定tty的进程,但能后面不接ttylist,表示当前登录终端的进程
-t ttylist 显示指定tty的进程,形如:/dev/ttyS1,ttyS1,S1等,“-”符号代表不依赖终端的进程
-u userlist 显示指定effective UID或用户名的进程
--ppid pidlist 显示指定parent PID的进程
显示输出控制:
-F 输出完全格式
-M 加一列显示安全数据,SELinux LABER
X 注册格式
Z 同-M
-o format 指定输出格式,不同参数用逗号隔开
指定输出:
-H 显示进程结构(进程树)
c 显示进程的命令名
e 显示进程的环境(如终端,TERM,PATH等)
-n namelist 指定对象名文件
线程显示:
H 显示运行的线程
-L 显示线程,可能加上LWP和NLWP列
-T 显示线程,可能加上SPID列
典型用法:
1.显示当前系统所有运行的程序
ps aux
ps aux | more #常常通过管道配合其他程序使用
2.显示指定用户运行的程序
ps -u root
3.显示指定登录终端运行的程序
ps -t tty1
4.查找指定进程的信息
ps -eF | grep ssh
5.显示当前登录终端有关进程的详细信息
ps -l
6.显示程序树
ps -axjf
7.显示进程的环境变量
ps -e