ps命令
常用参数:
a  显示所有用户的所有进程(包括其它用户);
u  按用户名和启动时间的顺序来显示进程;
x  显示无控制终端的进程;
e  显示所有进程,包括没有控制端的进程;
f  用树形格式来显示进程;
l  长格式输出;
w  为了避免详细参数被截断,可以用多个w来让其显示完整(比如说ww或者是www);
o  需要查看的选项

举例说明:

# ps aux | more

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0  19356   680 ?        Ss   Nov23   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Nov23   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Nov23   0:00 [migration/0]
root         30  0.0  0.0      0     0 ?        SN   Nov23   0:00 [ksmd]
root         31  0.0  0.0      0     0 ?        SN   Nov23   0:05 [khugepaged]
root         32  0.0  0.0      0     0 ?        S    Nov23   0:00 [aio/0]
root        278  0.0  0.0      0     0 ?        S    Nov23   1:58 [jbd2/sda3-8]
root        279  0.0  0.0      0     0 ?        S    Nov23   0:00 [ext4-dio-unwrit]
root        364  0.0  0.0  10808   208 ?        S<s  Nov23   0:00 /sbin/udevd -d
root        932  0.0  0.0  93176   484 ?        S<sl Nov23   0:03 auditd
root        948  0.0  0.1 249088  1564 ?        Sl   Nov23   0:02 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
rpc         990  0.0  0.0  18984   320 ?        Ss   Nov23   0:04 rpcbind
68         1087  0.0  0.1  37932  1288 ?        Ssl  Nov23   0:16 hald
root       1088  0.0  0.0  20328   340 ?        S    Nov23   0:00 hald-runner
root       1147  0.0  0.0  66632   392 ?        Ss   Nov23   0:00 /usr/sbin/sshd
root       1180  0.0  0.0 110320   356 ?        Ss   Nov23   0:00 /usr/sbin/abrtd
root       1213  0.0  0.0   4064   172 tty1     Ss+  Nov23   0:00 /sbin/mingetty /dev/tty1
--More--

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 僵尸进程;        
        <</strong> 优先级高的进程        
        N 优先级较低的进程        
        L 有些页被锁进内存;        
        s 进程的领导者(在它之下有子进程);        
        l 多线程 (using CLONE_THREAD, like NPTL pthreads do)        
        + 位于后台的进程组;
WCHAN:正在等待的进程资源;
START:启动进程的时间;
TIME:进程消耗CPU的时间;
COMMAND:启动进程的命令的名称和参数;

ps命令的其他用法:

# ps aux | grep httpd  ##查看nginx程序的进程

root      15665      1  0 Dec06 ?        00:00:00 nginx: master process /soft/openresty/nginx/sbin/nginx
nginx     15676  15665  0 Dec06 ?        00:00:00 nginx: worker process  

# ps axo pid,%cpu,%mem,comm | grep nginx   ##只查看pid,%cpu,%mem,comm这几项

15665  0.0  0.8 nginx
15676  0.0  0.8 nginx

目前常用的就这么几个,后面又用的其他的在添加。


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