|

楼主 |
发表于 2010-4-24 15:34
|
显示全部楼层
进程管理
由于Linux是个多用户系统,有时候也要了解其他用户现在在干什么;同时Linux是一个多进程系统,经常需要对这些进程进行一些调配和管理;而要进行管理,首先就要知道现在的进程情况:究竟有哪些进程?进程情况如何?所以需要查看进程。
1.who命令
该命令主要用于查看当前线上的用户情况。这个命令非常有用。如果用户想和其他用户创建即时通信,比如使用talk命令,那么首先要确定的就是该用户确实上线,不然talk进程就无法创建起来。又如,系统管理员希望监视每个登录的用户此时此刻的行为,也要使用who命令。who命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。
2.w命令
该命令也用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,并且统计资料相对who命令来说更加详细和科学。可以认为w命令就是who命令的一个增强版。w命令的显示项目按以下顺序排列:当前时间;系统启动到现在的时间;登录用户的数目;系统在最近1秒、5秒和15秒的平均负载。然后是每个用户的各项资料,项目显示顺序如下:登录账号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。其中JCPU时间指的是和该终端(tty)连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间。而PCPU时间则是指当前进程(即在WHAT项中显示的进程)所占用的时间。
3.ps命令
ps命令就是最基本的同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行以及运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都可以通过执行该命令得到。
ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了。
ps [选项]
下面对命令选项进行说明 ∶
-e 显示所有进程。
-f 全格式。
-h 不显示标题。
-l 长格式。
-w 宽输出。
a 显示终端上的所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。
O[+|-] k1 [, [+|-] k2 [, …]] 根据SHORT KEYS, k1, k2中快捷键指定的多级排序顺序显示进程列表。对于ps的不同格式都存在着默认的顺序指定。这些默认顺序可以被用户的指定所覆盖。其中 + 字符是可选的,- 字符是倒转指定键的方向。
最常用的3个参数是u, a, x。
下面是命令
#ps axu
的输出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER:进程所有者。
PID:进程号。
%CPU:占用的 CPU 使用率。
%MEM:占用的内存使用率。
VSZ:占用的虚拟内存大小。
RSS:占用的内存大小。
TTY:终端的次设备号码。
STAT:该进程的状态。
D:不可中断的休眠(通常表示该进程正在进行I/O动作)。
R:正在执行中。
S:休眠状态。
T:暂停执行。
Z:不存在但暂时无法消除。
W:没有足够的内存分页可分配。
<:高优先顺序的进程。
N:低优先顺序的进程。
L:有内存分页分配并锁在内存内(即时系统或定制I/O)。
START:进程开始时间。
TIME:执行的时间。
COMMAND:所执行的命令
例:
#ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps
#ps -A
PID TTY TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kflushd
3 ? 00:00:00 kpiod
4 ? 00:00:00 kswapd
5 ? 00:00:00 mdrecoveryd
.......
# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd] |
|