ps是linux一个管理系统进程的命令,由于ps支持的操作系统很多,所以其参数也多得吓人。我在这里总结了用过的一些操作。
1.ps aux
linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
au(x) 输出格式 (注意都是小写):
-a :不与terminal有关的所有process
-u:有效使用者相关的process
x:通常与a参数一起使用,可列出较完整的信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟内存大小
RSS: 占用的固定内存大小
TTY: 运行在那个终端机上,若愚终端机无关,则显示?,
STAT: 该行程的状态:
D: 不可中断的静止
R: 正在执行中
S: 正在睡眠中,可被某些讯号(signal)唤醒
T: 正在侦测或者停止了
Z: 不存在但暂时无法消除,即僵尸进程
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
2.ps aux|grep test|wc -l
其中的grep是用来进行正则匹配的。grep也是linux下的一个常用命令。其参数有:
-I :忽略大小写
-c :打印匹配的行数
-l :从多个文件中查找包含匹配项
-v :查找不包含匹配项的行
-n:打印包含匹配项的行和行标
-w或--word-regexp: 只显示全字符合的列
wc也是linux下的一个命令,用来统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。
参数:
- w 统计字数
- c 统计字节数
- l 统计行数
所以上面的命令将首先筛选有包含test字符的process,然后统计进程数并返回。
参考资料:
ps——http://ilinux.iteye.com/blog/180204