Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2548518
  • 博文数量: 2110
  • 博客积分: 18861
  • 博客等级: 上将
  • 技术积分: 24420
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-05 18:23
文章分类

全部博文(2110)

文章存档

2011年(139)

2010年(1971)

我的朋友

分类: LINUX

2010-10-14 17:03:13

Linux是一个多用户、多任务的操作系统。在这样的系统中,各种计算机资源(如文件、内存、CPU等)的分配和管理都以进程为单位。为了协调多个进程对这些共享资源的访问,操作系统要跟踪所有进程的活动,以及它们对系统资源的使用情况,从而实施对进程和资源的动态管理。进程在一定条件下可以对诸如文件、数据库等客体进行操作。如果进程用作其他不法用途,将给系统带来重大危害。在现实生活当中,许多网络黑客都是通过种植“木马”的办法来达到破坏计算机系统和入侵的目的,而这些“木马”程序无一例外的是需要通过进程这一方式在机器上运行才能发挥作用的。另外,许多破坏程序和攻击手段都需要通过破坏目标计算机系统的合法进程尤其是重要系统进程,使得系统不能完成正常的工作甚至无法工作,从而达到摧毁目标计算机系统的目的。作为服务器中占绝大多数市场份额的Linux系统,要切实保证计算机系统的安全,我们必须对其进程进行监控和保护。

Linux操作系统包括如下三种不同类型的进程,每种进程都有其自己的特点和属性:

  1. 交互进程:由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
  2. 批处理进程:这种进程和终端没有联系,是一个进程序列。
  3. 守护进程:Linux系统启动时启动的进程,并在后台运行。

上述三种进程各有各的作用,使用场合也有所不同。

Linux系统提供了who、w、ps和top等察看进程信息的系统调用,通过结合使用这些系统调用,我们可以清晰地了解进程的运行状态以及存活情况,从而采取相应的措施,来确保Linux系统的安全。

1、who命令

该命令主要用于查看当前在线上的用户情况。系统管理员可以使用who命令监视每个登录的用户此时此刻的所作所为:

# who
root     pts/1        2010-02-21 15:56 (:0.0)

2、w命令

该命令也用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,w命令是who命令的一个增强版:

# w
 15:56:44 up 38 min,  1 user,  load average: 0.56, 0.15, 0.12
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1    :0.0             15:56    0.00s  0.19s  0.05s w

3、ps命令

最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。ps命令可以监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,如果需要检测其情况,可以使用ps命令。下面是一个ps命令的例子:

# ps
  PID TTY          TIME CMD
 2817 pts/1    00:00:00 bash
 2836 pts/1    00:00:00 ps

4、top命令

top命令和ps命令的基本作用是相同的,显示系统当前的进程和其他状况;但是top是一个动态显示过程,可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确地说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用。内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。下面是一个top命令的例子:

# top
top - 15:58:07 up 39 min,  1 user,  load average: 2.09, 0.68, 0.30
Tasks: 112 total,   2 running, 108 sleeping,   0 stopped,   2 zombie
Cpu(s): 30.6%us, 25.2%sy,  0.0%ni, 41.2%id,  0.3%wa,  2.7%hi,  0.0%si,  0.0%st
Mem:    485736k total,   477828k used,     7908k free,    31252k buffers
Swap:  1285160k total,        0k used,  1285160k free,   291192k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                          
 2502 root      15   0 36680  10m 5776 S 40.0  2.2   0:54.26 Xorg                                             
 2814 root      15   0  127m  16m  10m S  3.0  3.5   0:03.62 gnome-terminal                                   
 2616 root      15   0 97356  14m  10m S  2.6  3.1   0:02.43 gnome-panel                                      
 2609 root      15   0 38660  10m 7544 S  2.0  2.1   0:01.57 metacity                                         
 2640 root      15   0 96276  13m 9448 S  2.0  2.7   0:01.46 wnck-applet                                      
 2597 root      15   0 33916 8144 6768 S  1.0  1.7   0:01.32 gnome-settings-                                  
 2618 root      15   0  133m  20m  14m S  1.0  4.4   0:04.66 nautilus                                         
 2709 root      15   0 16396 3488 2736 S  0.7  0.7   0:02.72 gnome-screensav                                  
 2837 root      15   0  2160 1008  788 R  0.7  0.2   0:00.31 top                                              
 2855 root      15   0  106m  22m  14m S  0.7  4.8   0:01.87 gedit                                            
 2035 root      18   0 33180 1276  536 S  0.3  0.3   0:01.51 pcscd                                            
 2076 root      21   0  9336 1108  856 S  0.3  0.2   0:00.35 automount                                        
 2313 root      18   0  1920  624  544 S  0.3  0.1   0:03.46 hald-addon-stor                                  
 2665 root      15   0  2528 1156  948 S  0.3  0.2   0:00.26 gam_server                                       
 2703 root      15   0 64020  24m  14m S  0.3  5.3   0:02.39 /usr/bin/sealer                                  
 2713 root      15   0 49500 6528 3484 S  0.3  1.3   0:00.31 scim-panel-gtk                                   
    1 root      15   0  2036  640  548 S  0.0  0.1   0:02.16 init                                             
    2 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                      
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                      
    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                       
    5 root      10  -5     0    0    0 S  0.0  0.0   0:00.06 events/0                                         
    6 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 khelper                                          
    7 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 kthread                                          
   10 root      10  -5     0    0    0 S  0.0  0.0   0:00.26 kblockd/0            

以上介绍的是目前在Linux下使用得最常见的进程状况查看工具,它们是随Linux套件发行的,安装好系统之后,用户就可以使用。当然,随着开源的不断发展,相信将会有更多的该方面的工具出现,以方便用户选择和使用。

阅读(317) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~