51Testing软件测试网wYAF@3De:E
51Testing软件测试网0S8Pg5L PYJ-l(_bL4i
ps命令是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和它所运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。总之大部分信息都是可以通过执行该命令得到的。ps命令最常用来监控后台进程的工作情况,因为后台进程是不和屏幕、键盘这些标准输入/输出设备进行通信的,所以如果需要检测后台情况,就需要使用ps命令了。它的格式如下所示:格式:ps [选项]其主要选项如下。51Testing软件测试网(rG4m-{+U@X.S
-a:显示系统中所有进程的信息。
N+E[4X&]3o^0-e:显示所有进程的信息。51Testing软件测试网#{uS3RHz2Q
-f:显示进程的所有信息。51Testing软件测试网`&q-ju%l`"N%Gm(T
-l:以长格式显示进程信息。
[Q.o~;PHh0-r:只显示正在运行的进程。51Testing软件测试网$x:u^0kG(C mZ
-u:显示面向用户的格式(包括用户名、CPU及内存的使用情况等信息)。
[KCP5}7T0-x:显示所有非控制终端上的进程信息。
]5a[J
?|A0-p:显示由进程ID指定的进程信息。
IRP7Xp/E0-t:显示指定终端上的进程信息。
7t5[\,X:m%D-u)_0要对进程进行监测和控制,首先要了解当前进程的情况,当然也就需要查看当前进程的状态了。通过ps命令查看进程,根据所显示的信息可以了解哪个进程正在运行、哪个进程被挂起了、进程已运行了多久、进程正在使用的资源、进程的相对优先级,以及进程的标志号(PID)。所有这些信息对用户都很有用,对于系统管理员来说尤为重要。使用ps -aux命令可以获得终端上所有用户的有关进程的所有信息,这个也是我们平时用得最多的命令之一,如下所示:
ZAJ:NL6SU0- [root@localhost ~]# ps -axu
- Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
- USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND
- root 1 0.0 0.0 10348 688 ?Ss Mar16 0:01 init [5]
- root 2 0.0 0.0 0 0 ?S< Mar16 0:00 [migration/0]
- root 3 0.0 0.0 0 0 ?SN Mar16 0:00 [ksoftirqd/0]
- root 4 0.0 0.0 0 0 ?S< Mar16 0:00 [watchdog/0]
- root 5 0.0 0.0 0 0 ?S< Mar16 0:00 [migration/1]
- root 6 0.0 0.0 0 0 ?SN Mar16 0:00 [ksoftirqd/1]
- ...
- avahi3153 0.0 0.023148336 ?Ss Mar16 0:00 avahi-daemon: chroot helper
- root 3214 0.0 0.0 18416 476 ?SMar16 0:00 /usr/sbin/smartd -q never
- root 3219 0.0 0.0 3792 488 tty1Ss+ Mar16 0:00 /sbin/mingetty tty1
- root 3220 0.0 0.0 3792 484 tty2Ss+ Mar16 0:00 /sbin/mingetty tty2
- root 3221 0.0 0.0 3792 488 tty3Ss+ Mar16 0:00 /sbin/mingetty tty3
- root 3222 0.0 0.0 3792 488 tty4Ss+ Mar16 0:00 /sbin/mingetty tty4
- root 3224 0.0 0.0 3792 488 tty5Ss+ Mar16 0:00 /sbin/mingetty tty5
- root 3226 0.0 0.0 3792 488 tty6Ss+ Mar16 0:00 /sbin/mingetty tty6
- root 3233 0.0 0.0169912 2756 ?Ss Mar16 0:00
/usr/sbin/gdm-binary -nodaemon - root 3322 0.0 0.0197124 2564 ?SMar16 0:00 /
usr/sbin/gdm-binary -nodaemon - root 3324 0.0 0.1189808 4112 ?Sl Mar16 0:00
/usr/libexec/gdm-rh-security-token-helper - root 3325 0.0 0.1 90548 6264 tty7Ss+ Mar16 0:02
/usr/bin/Xorg :0 -br -audit 0 -auth /var/gdm/:0.Xauth -noli - root 3339 0.0 0.425792016784 ?SN Mar16 0:20 /
usr/bin/python -tt /usr/sbin/yum-updatesd - root 3341 0.0 0.0 12916 1188 ?SN Mar16 0:00
/usr/libexec/gam_server - gdm 3351 0.0 0.837961236176 ? Ss Mar16 0:00 /usr/libexec/gdmgreeter
- root 4342 0.0 0.0 41096 896 ? Ss Mar16 0:00
nginx: master process /usr/local/webserver/nginx/sbin/nginx - www 4343 0.0 0.6 6592026232 ?SMar16 0:05 nginx: worker process
- www 4344 0.0 0.6 6592026160 ?SMar16 0:02 nginx: worker process
- www 4345 0.0 0.6 6607626460 ?SMar16 0:03 nginx: worker process
- www 4346 0.0 0.6 6592026104 ?SMar16 0:03 nginx: worker process
- www 4347 0.0 0.6 6605226228 ?SMar16 0:04 nginx: worker process
- www 4348 0.0 0.6 6601226372 ?SMar16 0:04 nginx: worker process
- www 4349 0.0 0.6 6578826076 ?SMar16 0:03 nginx: worker process
- www 4350 0.0 0.6 6592026188 ?SMar16 0:06 nginx: worker process
- root 5314 0.0 0.0 00 ?SMar28 0:00 [pdflush]
- root 5315 0.0 0.0 00 ?SMar28 0:00 [pdflush]
- root 6767 0.0 0.0 68284 1564 tty8Ss+ Mar17 0:00 /bin/bash
- root10369 0.0 0.0 65556 932 pts/2R+ 14:23 0:00 ps -axu
- root18906 0.0 6.41443024261272 ? Sl 00:15 0:46 /usr/
local/jdk/bin/java -Djava.util.logging.config.file=/us - root20573 0.0 0.0 90140 3344 ?Ss 09:02 0:00 sshd: root@pts/2
- root20575 0.0 0.0 68412 1756 pts/2Ss 09:02 0:00 -bash
USER:表示启动进程的用户。51Testing软件测试网S3XaVke9O)G,c
PID:表示进程标志号。
xm2y"AaHSw0%CPU:表示运行该进程占用CPU的时间与该进程总的运行时间之比。51Testing软件测试网3E5N0I$H-\7_hs~D
%MEM:表示该进程占用内存与总内存之比。51Testing软件测试网$T7Y5Hk8o t,lV1t%l
VSZ:表示占用的虚拟内存大小,以KB为单位。51Testing软件测试网4H3\)h#cC
RSS:为进程占用的物理内存值,以KB为单位。
C Gy1g-I0TTY:表示该进程建立时所对应的终端,“?”表示该进程不占用终端。51Testing软件测试网&Wik h4MS7LTn3P
STAT:表示进程的运行状态。包括以下几种代码:D,不可中断的睡眠;R,就绪(在可运行队列中);S,睡眠;T,被跟踪或停止;Z,终止(僵死)的进程,这些进程不存在,但暂时无法消除;W,没有足够的内存分页可分配;<,高优先级的进程;N,低优先级的进程;L,有内存分页分配并锁在内存体内(实时系统或I/O)。51Testing软件测试网8Oer
}$l1t&N
START:为进程开始时间。51Testing软件测试网K1A1j"xOi+HK([ Q/Q
TIME:为执行的时间。
wt9@jY0{L+Td0COMMAND:是对应的命令名。
-K:woFfZ,xW8R;G9u0由于ps执行后结果太多了,所以我们一般会带上grep参数来精确定位我们需要的进程号。例如,我们要查看Nginx占用的进程,可以用命令ps -axugrep nginx,如下所示:51Testing软件测试网%C&U ?o9@B%E\
- [root@localhost ~]# ps -axu| grep -v grep| grep nginx
- Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
- root 4342 0.0 0.0 41096 896 ?Ss Mar16
0:00 nginx: master process /usr/local/webserver/nginx/sbin/nginx - www 4343 0.0 0.6 65920 26232 ?SMar16
0:05 nginx: worker process - www 4344 0.0 0.6 65920 26160 ?SMar16
0:02 nginx: worker process - www 4345 0.0 0.6 66076 26460 ?SMar16
0:03 nginx: worker process - www 4346 0.0 0.6 65920 26104 ?SMar16
0:03 nginx: worker process - www 4347 0.0 0.6 66052 26228 ?SMar16
0:04 nginx: worker process - www 4348 0.0 0.6 66012 26372 ?SMar16
0:04 nginx: worker process - www 4349 0.0 0.6 65788 26076 ?SMar16
0:03 nginx: worker process - www 4350 0.0 0.6 65920 26188 ?SMar16
0:06 nginx: worker process