RHEL6系统进程管理之进程观察ps命令

ps:Linux系统中的进程查看命令

常用参数:a 显示所有用户的所有进程(包括其它用户);u 按用户名和启动时间的顺序来显示进程;x 显示无控制终端的进程;

e 显示所有进程,包括没有控制端的进程;f 用树形格式来显示进程;

l 长格式输出;w 为了避免详细参数被截断,可以用多个w来让其显示完整(比如说ww或者是www);

o 需要查看的选项

常用的是aux ef

下面介绍一下ps输出的参数内容

USER进程的属主;PID进程的ID;PPID 父进程;%CPU 进程占用的CPU百分比;%MEM 占用内存的百分比;NI进程的NICE值,也就是进程的优先值(-20~19之间),数值越大,,优先级越底;VSZ进程虚拟大小;RS驻留中页的数量;TTY终端ID。问号表示是无终端的,也就是系统本身。STAT 进程状态 D Uninterruptible sleep (usually IO)R 正在运行可中在队列中可过行的;S 处于休眠状态;T 停止或被追踪;W 进入内存交换(从内核2.6开始无效);X 死掉的进程(从来没见过);Z 僵尸进程;< 优先级高的进程N 优先级较低的进程L 有些页被锁进内存;s 进程的领导者(在它之下有子进程);l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)+ 位于后台的进程组;WCHAN 正在等待的进程资源;START 启动进程的时间;TIME 进程消耗CPU的时间;COMMAND 命令的名称和参数;ps应用举例

ps aux |more因为ps aux显示出来的内容太多,所以可以接管道,来分页查看或者是把结果生成文件

pa aux > ps.file查询某个程序的进程ps aux |grep httpd如

[root@ ~]# ps aux |grep httpdroot 1470 0.0 4.1 281892 10220 ? Ss 19:50 0:00 /usr/sbin/httpdapache 1494 0.0 2.2 281892 5548 ? S 19:50 0:00 /usr/sbin/httpdapache 1495 0.0 2.2 281892 5548 ? S 19:50 0:00 /usr/sbin/httpdapache 1496 0.0 2.2 281892 5548 ? S 19:50 0:00 /usr/sbin/httpdapache 1497 0.0 2.2 281892 5548 ? S 19:50 0:00 /usr/sbin/httpdapache 1498 0.0 2.2 281892 5548 ? S 19:50 0:00 /usr/sbin/httpdapache 1499 0.0 2.2 281892 5548 ? S 19:50 0:00 /usr/sbin/httpdapache 1500 0.0 2.2 281892 5548 ? S 19:50 0:00 /usr/sbin/httpdapache 1501 0.0 2.2 281892 5548 ? S 19:50 0:00 /usr/sbin/httpdroot 1613 0.0 0.3 103232 872 pts/0 S+ 19:52 0:00 grep httpd显示某个程序的进程树情况

ps auxf |grep httpd下面是例子[root@ ~]# ps auxf |grep httpdroot 1615 0.0 0.3 103228 864 pts/0 S+ 19:53 0:00 \_ grep httpdroot 1470 0.0 4.1 281892 10220 ? Ss 19:50 0:00 /usr/sbin/httpdapache 1494 0.0 2.2 281892 5548 ? S 19:50 0:00 \_ /usr/sbin/httpdapache 1495 0.0 2.2 281892 5548 ? S 19:50 0:00 \_ /usr/sbin/httpdapache 1496 0.0 2.2 281892 5548 ? S 19:50 0:00 \_ /usr/sbin/httpdapache 1497 0.0 2.2 281892 5548 ? S 19:50 0:00 \_ /usr/sbin/httpdapache 1498 0.0 2.2 281892 5548 ? S 19:50 0:00 \_ /usr/sbin/httpdapache 1499 0.0 2.2 281892 5548 ? S 19:50 0:00 \_ /usr/sbin/httpdapache 1500 0.0 2.2 281892 5548 ? S 19:50 0:00 \_ /usr/sbin/httpdapache 1501 0.0 2.2 281892 5548 ? S 19:50 0:00 \_ /usr/sbin/httpd从上面的结果,我们可以很清楚的看到,apache用户的进程全部是由/usr/sbin/httpd来而的,所以只要停止掉他,那么其他的进程也就自动停止了。

[root@ ~]# kill 1470[root@ ~]# ps auxf |grep httpdroot 1617 0.0 0.3 103228 864 pts/0 S+ 19:56 0:00 \_ grep httpd我们发现httpd这个进程已经没有了。

显示进程的某些选项

ps axo pid,%cpu,%mem,comm |grep httpd先来启动httpd

[root@ ~]# service httpd startStarting httpd: [ OK ]下面就是查看某个进程的某些选项

[root@ ~]# ps axo pid,%cpu,%mem,comm |grep httpd1628 0.0 4.1 httpd1630 0.0 2.2 httpd1631 0.0 2.2 httpd1632 0.0 2.2 httpd1633 0.0 2.2 httpd1634 0.0 2.2 httpd1635 0.0 2.2 httpd1636 0.0 2.2 httpd1637 0.0 2.2 httpd是不是很方便,很实用啊!

这里,我们还需要来了解一下什么是僵尸进程。通常,造成僵尸进程的成因是因为该进程应该已经执行完毕,或者是因故应该要终止了, 但是该进程的父进程却无法完整的将该进程结束掉,而造成那个进程一直存在内存当中。如果你发现在某个进程的 CMD 后面还接上 <defunct> 时,就代表该进程是僵尸进程。当系统不稳定的时候就容易造成所谓的僵尸进程。也有可能是因为程序写的不完善,或者是使用者的操作习惯不良等等所造成。如果你发现系统中很多僵尸进程时,记得要找出该进程的父进程,然后做个跟踪排除问题!

回避现实的人,未来将更不理想。

RHEL6系统进程管理之进程观察ps命令

相关文章:

你感兴趣的文章:

标签云: