linux命令之ps
概述
有时候系统管理员可能只关心现在系统中运行着哪些程序,而不想知道有哪些进程在运行。由于一个应用程序可能需要启动多个进程。所以在同等情况下,进程的数量要比程序多的多。使用ps可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。
-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线
ps c
列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。
解释
NI 进程的NICE值,数值大,表示较少占用CPU时间;
TIME 进程使用的总cpu时间
VSZ 进程所使用的虚存的大小(Virtual Size)
RSS
进程使用的驻留集大小或者是实际内存的大小,Kbytes字节
STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)
R 运行
Runnable (on run queue) 正在运行或在运行队列中等待。
S 睡眠 Sleeping 休眠中, 受阻,
在等待某个条件的形成或接受到信号。
I 空闲 Idle
Z 僵死 Zombie(a defunct process) 进程已终止,
但进程描述符存在, 直到父进程调用wait4()系统调用后释放。
D 不可中断 Uninterruptible sleep (ususally IO)
收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。
D 无法中断的休眠状态(通常 IO 的进程);
T 终止 Terminate
进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
P 等待交换页
W 无驻留页 has no
resident pages 没有足够的记忆体分页可分配。
X 死掉的进程
< 高优先级进程 高优先序的进程
N 低优先级进程
低优先序的进程
L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内
s 进程的领导者(在它之下有子进程);
l 多进程的(使用
CLONE_THREAD, 类似 NPTL pthreads)
+ 位于后台的进程组
[root@CentOS5 ~]# ps aux|grep D
TTY
該進程在那個終端上運行(登陸者的終端位置),若與終端無關,則顯示(?)。若為pts/0等,則表示由網絡連接主機進程
WCHAN
當前進程是否正在進行,若為-表示正在進行;
START 該進程被觸發启动时间;
TIME 該进程實際使用CPU運行的时间;
COMMAND
命令的名称和参数;
STAT狀態位常見的狀態字符
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W
进入内存交换 (从内核2.6开始无效);
X 死掉的进程 (基本很少見);
Z 僵尸进程;
< 优先级高的进程
N
优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似
NPTL pthreads);
+ 位于后台的进程组;
样例:
查看当前系统进程的uid,pid,stat,pri,
以uid号排序.
ps -eo pid,stat,pri,uid --sort
uid
查看当前系统进程的user,pid,stat,rss,args, 以rss排序.
ps -eo user,pid,stat,rss,args
--sort rss