要对进程进⾏监测和控制,⾸先必须要了解当前进程的情况,也就是需要查看当前进程, ⽽ps命令(Process Status)就是最基本同时也是⾮常强⼤的进程查看命令.
使⽤该命令 可以确定有哪些进程正在运⾏和运⾏的状态、进程是否结束、进程有没有僵⼫、哪些进程占⽤了过多的资源等等.总之⼤部分信息都是可以通过执⾏该命令得到的.
ps 为我们提供了进程的⼀次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该⽤ top ⼯具。
如果直接⽤ps命令,会显⽰所有进程的状态,通常结合grep命令查看某进程的状态。
grep (global search regular expression(RE) and print out the line,全⾯搜索正则表达式并把⾏打印出来)是⼀种强⼤的⽂本搜索⼯具,它能使⽤正则表达式搜索⽂本,并把匹配的⾏打印出来。
使⽤⽰例:
[root@node20 updateDB]# ps aux|grep ./update_stock
root 14232 0.0 0.0 5928 724 pts/1 S+ 18:16 0:00 grep ./update_stockroot 25021 0.0 0.0 3056 816 ? S Apr12 0:03 ./update_stock
ps aux输出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
格式说明:USER: ⾏程拥有者PID: pid
%CPU: 占⽤的 CPU 使⽤率%MEM: 占⽤的记忆体使⽤率VSZ: 占⽤的虚拟记忆体⼤⼩RSS: 占⽤的记忆体⼤⼩
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该⾏程的状态,linux的进程有5种状态:D 不可中断 uninterruptible sleep (usually IO)R 运⾏ runnable (on run queue)S 中断 sleeping
T 停⽌ traced or stopped
Z 僵死 a defunct (”zombie”) process
注: 其它状态还包括W(⽆驻留页), <(⾼优先级进程), N(低优先级进程), L(内存锁页).
START: ⾏程开始时间TIME: 执⾏的时间COMMAND:所执⾏的指令
1) ps a 显⽰现⾏终端机下的所有程序,包括其他⽤户的程序。2)ps -A 显⽰所有程序。
3)ps c 列出程序时,显⽰每个程序真正的指令名称,⽽不包含路径,参数或常驻服务的标⽰。 4)ps -e 此参数的效果和指定\"A\"参数相同。
5)ps e 列出程序时,显⽰每个程序所使⽤的环境变量。
6)ps f ⽤ASCII字符显⽰树状结构,表达程序间的相互关系。 7)ps -H 显⽰树状结构,表⽰程序间的相互关系。
8)ps -N 显⽰所有的程序,除了执⾏ps指令终端机下的程序之外。 9)ps s 采⽤程序信号的格式显⽰程序状况。
10)ps S 列出程序时,包括已中断的⼦程序资料。
11)ps -t 指定终端机编号,并列出属于该终端机的程序的状况。 12)ps u 以⽤户为主的格式来显⽰程序状况。
13)ps x 显⽰所有程序,不以终端机来区分。
ps是显⽰当前状态处于running的进程,grep表⽰在这些⾥搜索,⽽ps aux是显⽰所有进程和其状态。$ ps aux | grep amoeba查到amoeba的进程$ kill -s 9 pid杀死进程
因篇幅问题不能全部显示,请点此查看更多更全内容