关闭

转载:进程的基本概念

627人阅读 评论(0) 收藏 举报

 

8.1 

8.1.1
进程

    
进程是正在执行的一个程序的实例,通常是由程序,数据集合和进程控制块(Process Control Block 简称PCB)三个部分组成。
程序部分    描述了进程所要完成的功能。
数据集合    包括两个方面的内容,即程序运行时所需要的数据部分和工作区。
进程控制块  含有进程的描述信息和控制信息,是进程动态特性的集中反映,它是系统对进程施行识别和控制的依据。


8.1.2  
进程和程序的区别

1
程序是静态概念,本身可以作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态地产生和消亡的。
2
进程是一个能独立运行的单位,能与其他进程并发执行,进程是作为资源申请调度单位存在的,而通常的程序段是不能作为一个独立运行的单位的。
3
程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序。进程不能脱离具体程序而虚设,程序规定了相应进程所要完成的动作。


8.1.3  
父进程与子进程

1
子进程是由另外一个进程所产生的进程,产生这个子进程的进程称为父进程。 
2
子进程继承某些父进程的环境,但子进程作为几个独立的进程也有它自己的环境。
3
UNIX系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
4
子进程共享父进程的文本段即代码段。父进程和子进程以并行的方式执行同一程序的不同分支。


8.1.4  
进程的状态

    S   
进程由于等待某个事件而被封锁,又叫作等待
    R  
这种状态的进程当前还没有运行,但只要核心调度到它,马上就可以投入运行,
   
又叫作就绪
    Z  
僵尸状态。这样的进程已经完成了它的使命,不再存在,它给它的父进程留下一
   
个记录,包括了一个退出码和一些时间统计信息。
    T   
由于父进程的跟踪,通过信号停止的进程。
I   
这样的进程虽然存在,但它既没有被封锁,也不可运行,这种状态是除进程0以外
    
所有进程的起始状态。
    X   
进程由于等待内存资源而被封锁。
    O   
进程正在运行,它或者在核心模式中运行,或者在用户模式中运行。

进程的三种基本状态

运行态  是指当前进程已分配到CPU,它的程序正在处理机上执行时的状态。处于这
        
种状态的进程个数不能大于CPU的数目。
就绪态  是指进程已具备运行条件,但因为其他进程正在占用CPU,所以暂时不能运行
        
而等待分配CPU的状态。一旦把CPU分配给它,它立即就可运行。
封锁态  是指进程因为等待某种事件的发生而暂时不能运行的状态。即处于封锁态的
        
进程尚不具备运行条件,即使CPU空闲,它也无法使用。这种状态有时也称
        
为不可运行状态或挂起状态。
8.1.5  
进程调度

unix系统中,由进程调度程序对进程运行进行合理安排,有分时和实时两种调度策略。
1
、进程调度程序完成挑选进程,分配CPU的工作。
2
、缺省情况下,UNIX操作系统使用分时调度策略,在运行中动态地调整进程的优先级,
   
以提供最佳响应时间。
3
UNIX系统同时提供一种实时调度策略,允许用户为每个进程指定一个固定的优先级,优
   
先级最高的实时用户将一直占据CPU,只要他不主动放弃CPU,即使是系统核心进程也不
   
能投入运行。
4
UnixWare 7系统不是以实际的进程为基础进行调度的,而是以轻负荷进程(LWPs
   
为基础实现进程调度的。

8.1.6  UNIX
进程种类

UNIX
系统中将进程分为两大类:系统进程SYS和用户进程

8.1.6.1  
系统进程SYS    
系统进程与终端无关,不由用户启动,通常也叫做守护进程,是核心专用的特殊程序。
下面说明01号系统进程意义:
     
进程0sysproc进程。管理换入与换出的进程,对系统中运行的进程进行合理地调度。
            
将进程从硬盘交换区调入内存的过程称为换入;将进程从内存调到硬盘交换
            
区的过程称为换出。该进程是unix核心创建的第一个进程,有多个LWPs
     
进程1init进程。系统初始化进程,是所有用户进程和非sysproc进程的祖先。

8.1.6.2  
用户进程
用户进程与特定的用户标识和终端相关联。通过在ps命令行指定用户名或终端ID很容易将用户进程和系统进程区分开。要列出除root用户进程之外的其它所有用户进程,执行如下命令:
               ps -ef|grep –v “^ root”

8.1.6.3  
轻负荷进程(LWP
轻负荷进程(Light Weight Process)也叫做附属进程。可以是系统进程,也可以是用户进程。
一个进程可以有多个LWPLWP具有以下一些与众不同的特点:
1
共享同样的进程ID
2
共享包括地址空间在内的同一资源;
3
通过系统调用和块I/O来使用资源;
4
独立调度。
能够在多处理器系统上进行并行调度是LWPs的主要优点。可以用下列方法之一来查看某进程(假定进程PID0)的LWPs
1
# ps –eL –p0
2
、进入到/proc文件系统中你要检查的进程的PID目录,再进入到该目录下的lwp子目录,
   
lwp目录中包含LWP IDs

8.1.6.4  
死进程
死进程是已经终止,但没有从进程表中清除的进程。可能由下列情况之一产生:
1
父进程在子进程终止之前先终止;
2
父进程没有等待子进程终止。
如果系统存在大量死进程,就会过多占用进程表空间,影响新进程的产生。这时,我们需要重新启动系统以清除死进程。


8.1.7  
进程表
进程表记录进程各种信息,进程表的长度指定允许创建进程的数量。
进程表是核心对进程进行维护的一张表,其大小由核心参数NRPOC决定的。 
进程表的基本单元是表项。进程表项记录着进程的各种信息,包括:

          
进程的ID号(PID
          
父进程的ID号(PPID
          
用户的ID号(UID
          
进程的优先级
          
进程的状态
          
进程的长度

8.1.8  
前台进程和后台进程

前台进程: Shell提示处打入命令后,创建一个子进程,运行命令,Shell等待命
           
令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即
           
在前台运行,用户在它完成之前不能执行另一个命令。
后台进程: Shell提示处打入命令,若后随一个&Shell创建的子进程运行此命令,
           
但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell
           
步运行,即在后台运行。后台进程必须是非交互式的。


8.2  
查看当前进程

ps
命令
PS
命令可以检查系统中正在运行的进程的状态,可以把系统中全部的活动进程列出来,这些进程既包括在后台运行的,也包括在前台运行的。

     ps
的命令行结构:
     ps  [-edalf][-n name][-t ttys][-p pids]
        [-u users][-g groups]
    
ps命令行没有选项时,只显示与控制终端相关进程的基本信息。
ps
C)命令一些常用选项定义如下:
-f
:产生某个进程的一个完整清单;
-u
:产生属于某个特定用户进程的一个清单;
-t
:产生与特定终端联系的进程的一个清单;
-e
:显示进程的完整清单


8.3  
进程运行优先级

8.3.1  
进程优先级
每个进程都有一个相应的优先级用以决定CPU对它的调度。进程优先级从01270为最低优先级。在UnixWare 7系统中,优先级在7599之间的进程不能用kill命令终止。

8.3.2  nice
命令
    
修改进程运行的优先级,是通过增加或减少进程的nice值来实现的。但这不会真正改变进程相关的优先级,nice值影响计算进程优先级的算法。              
     nice 
命令行的结构
     nice [increment] [command] [arguments]
     increment  
增量值,它的取值范围是1—19。如果命令行没有
                
给出这个值,则使用默认值10 
     command    
要执行的命令。
     arguments  
它是command所带的参量。

关于nice命令的几点说明
1
每个进程都有自己的nice值,使用nice值来计算这个进程的优先级。nice 值的取值范围从039,默认情况下,nice值是20 

2
进程的nice值不等于进程的优先级,但是,它与优先级有着对应关系,即nice值小的进程优先级高;nice值大的进程的优先级低。经过nice命令操作后,如果默认的nice值加上increment后,超过39,一律作为39对待;同样,如果计算结果小于0,一律作为0对待。

8.3.3  renice
命令
renice
命令用来改变正在运行的进程的nice值。使用-p参数允许你通过进程ID号指定进程;你可以使用-u参数后跟用户名或用户ID来改变属于指定用户的所有进程的nice值。
例如,要增加yw1用户的所有进程的nice值,执行如下操作:
renice 15 –u yw1 

8.4  
终止进程

kill
命令
     
使用命令killC)来终止进程。
     
命令行结构: 
      kill  [-signal]  PID
      signal
是信号,PID是进程号。

      kill 
命令向指定的进程发出一个信号signal。在默认的情况下,kill 命令向指定进程发出信号15。正常情况下,将杀死那些不捕捉或不忽略这个信号的进程。

关于kill命令的两个说明

1
高优先级进程除非重新启动系统,否则不能被终止。
2
kill –1 PID
一些程序使用它作为重读它们的配置文件的信号。
3
kill –2 PID
功能同按“Delete”键,用来终止一个进程。
4
kill –3 PID
   
功能同按“<Ctrl>;+/”键,比“kill -2”功能强大。通常产生一个包含程序内存转储信息的core文件。
5
kill –9 PID
   
在某些特殊的情况下,比如使用kill的普通形式无法杀死的进程,要使用该命令。信号9是不能被捕捉也不能被忽略的。因此,它可以强行终止进程的运行。


8.5  nohup 
命令-忽略挂起或退出

命令行结构:
    nohup command [arguments]&
    command  
指定要执行的命令;
arguments
是命令的参量;
&
指定在后台运行。
    
1
command所代表的命令在执行过程中,不会受到任何结束运行的信号(hangup或者quit)的影响。
2
如果用户没有对输出重新定向,则标准输出和错误输出都被送到文件nohup.out中。
3
如果用户在当前目录中不具备写权限,那么输出就定向到文件$HOME/nohup.out中。

8.6  
关于sar命令:
sar
命令从多个方面全面地报告系统的活动情况,包括文件的读写情况、系统调用的使用、串口、CPU效率、内存使用状况、进出活动以及IPC有关活动等等,可以帮助人们了解系统资源的使用情况,重点监视内存和CPU的使用。

sar
命令行的结构:
sar [-P processor_id[, . . . ] | ALL] [-ubdycwaqvtmpgrkAR]  [-o file] t [n]
sar [-P processor_id[, . . . ] | ALL] [-ubdycwaqvtmpgrkAR] [-s time][-e time] [-i sec] [-f file]   
 
 
sar
命令行的说明:

第一个命令行中,组合定义采样间隔,为采样间隔,n为采样次数。应该大于5的默认值为1-o file表示将命令执行结果以二进制格式存放在file(文件名)中。
第二个命令行中,-s time-e time分别表示报告的起始时间和结束时间。-i sec表示在sec(一个具体数字)秒的间隔选择记录,否则,在数据文件中所有间隔都要报告。当命令行中没有指定采样间隔时,将从-f选项指定的记录文件中抽取数据;如果在这种情况下,也没有-f选项,则从某天的/usr/adm/sa/sadd(dd为日期号)文件中抽取数据。这个文件是标准系统活动日报数据文件。因此,sar命令既可以以实时的方式采样当前系统活动,也可以查看已经过去的某段时间内系统中所发生的活动。

可以通过 sar 命令查看系统CPU的使用情况。在任一时刻,CPU的状态或者闲或者忙。在CPU空闲时,有可能是在等待输入、输出,在输入、输出完成后,CPU将继续工作;有可能是CPU没有任务而空闲。在CPU忙时,CPU可以是处在系统模式下,也可以是处在用户模式下。使用 sar -u 命令可以产生有关CPU的报告;使用sar -q 命令可以产生有关进程队列的报告。
       
   1
 使用 sar -u 命令产生的有关CPU的报告所显示内容各项的意义是:
       %usr   
以百分比的形式报告CPU处在用户模式下的时间。
       %sys   
以百分比的形式报告CPU处在系统模式下的时间。 
 

 

; %wio   以百分比的形式报告CPU等待输入、输出完成的时间。
       %idle  
以百分比的形式报告CPU空闲的时间。
       %intr  
以百分比的形式报告CPU处理中断的时间。
   
如果%idle的大小持续地低于10,说明CPU空闲的时间少,系统的CPU处理能力相对较低,进程竞争的主要资源不是内存而是CPU

   2
 使用 sar -q 命令产生的有关进程队列的报告所显示内容各项的意义是:
       prunq    
处理器处理的在内存中可运行的进程队列的大小。
       %prunocc 
处理器处理运行队列被占用的时间百分比。
       runq-sz  
准备运行的进程运行队列。
       %runocc  
以百分比的形式报告运行队列被占用的时间。
       swpq-sz  
在交换区中可执行进程的数目。
       %swpocc  
以百分比的形式报告交换区中的运行队列所占用的时间。
       
如果%runocc大于90,并且runq-sz的值大于2,说明系统的CPU负载相对较重,需要进行调整。


    
可以从以下几个方面进行检查,判断系统中是否有超常的页面活动:    
1
使用sar -p 命令产生页面活动报告。如果页面故障vflt/s的值大于100,表示系统中由于有效的页面当前不在内存中,每秒钟进行故障地址转换的数量在100次以上,这将严重影响到系统的运行效率,表明页面活动不正常。
2
使用 sar -w 命令产生的报告中,如果swpin/s 的值大于1,表示每秒从硬盘交换区传送进入内存的次数超过1次,标志着系统中也可能存在着超常的页面活动。
3.  
使用 sar -u 命令,这条命令可以报告系统中CPU 的使用效率,如果 %sys 的大小持续高于60或者 %wio 的大小相对较高,表示系统中存在的页面活动可能过多。
4.
使用 sar -r 命令,这条命令可以报告系统中内存和交换区的使用情况,如果自由
内存 freemen 的值低于100个页面,将严重影响系统的性能。
5.
使用 sar -q 命令产生的报告中,如果 %swpocc 大于20,说明系统交换活动过于
    
频繁。

     
系统I/O是数据从内存到外设和从外设到内存,以及外设之间的传输处理。通常情况下,85%的硬盘I/O可以通过使用buffer cache进行处理,buffer cache存在于内存核心的一个区域,但通常只用于系统I/O,它的大小是在系统启动时根据内存大小自动分配的。通过修改核心参数可以改变buffer cache的大小。通常,系统把现有内存中的cache分成两种结构,buffer cache  page cachebuffer cache存放的是数据,page cache存放的是程序,它们都要占用相当数量的核心内存空间。

   1
.使用 sar -b 命令产生的缓存区使用报告所显示的各项意义是:
      bread/s   
平均每秒从硬盘(或其它块设备)读入系统buffer的物理块数。
      lread/s   
平均每秒从系统buffer读出的逻辑块数。
      %rache    
buffer cache中进行逻辑读的百分比。
      bwrit/s   
平均每秒从系统buffer向硬盘(或其它块设备)所写的物理块
                
数。
      lwrit/s   
平均每秒写到系统buffer 的逻辑块数。
      %wcache   
buffer cache 中进行逻辑写的百分比。
      pread/s   
平均每秒请求进行物理读的次数。
      pwrit/s   
平均每秒请求进行物理写的次数。
      
在所报告的各项中,最重要的是%rache%wcache,这两项具体体现了系统buffer的使用效率。如果%rache小于90%%wcache 低于65%,表明系统的I/O活动频繁,系统cache的命中率相对比较低,需要增加buffer cache的大小,优化系统硬盘的读写操作。

   2
.使用 sar -u 命令产生CPU使用情况的报告。报告中的%wio以百分比的形式表示系统CPU等待输入、输出的时间。如果%wio的大小过高,表示系统的CPU花在等待输入、输出上的时间太多,系统的I/O性能较差,可能是由于硬盘产生的问题,也可能是内存太小等原因产生的问题。

   3
.使用 sar -d 命令产生块设备活动的报告所显示的各项的意义是:
      device  sar
命令正在监视的块设备的名字。
      %busy   
以百分比的形式表示设备忙时,运行传送请求所占用的时间。
      avque   
在指定的时间周期内,没有完成的请求的数量的平均值。
      r+w/s   
每秒传送到设备或从设备传送出的数据量。
      blks/s  
每秒传送的块数。每块的大小为512KB
   avwait  
以毫秒为单位,表示传送请求等待队列空闲的平均时间。
      avserv  
以毫秒为单位,表示完成传送请求所需的平均时间。
      
使用 sar -d 命令可以进一步判断系统的I/O问题是否是硬盘的I/O性能差的缘故。如果%busyavque的大小相对较高,说明硬盘的传输速度太慢,需要进行调整。

如果你的机器有多个CPU处理器,可以使用sar –P命令生成指定的一个或多个CPU处理器的活动报告。举例如下:
l
生成并显示第一个CPU的活动报告
sar –P0
l
生成并显示第二个和第三个CPU的活动报告
sar –P1,2
l
生成并显示第二个和第三个CPU的活动报告,每20秒采样一次,采样10
sar –P1,2 20 10
l
生成并显示所有CPU的活动报告
sar –P ALL
l
生成并显示第一个CPU发生系统调用的活动报告
sar –c P0

8.7  
进程管理器(Process Manager
在命令行中运行scoadmin-->;Process Manager。可以通过进程管理器实现如下功能:
1
从不同角度来查看进程以及相关信息;
2
查找指定进程;
3
向指定进程发送kill信号;
4
自动刷新进程信息列表。

进程管理器中Process菜单所提供的选项及其相应含义如下:
Delete —— 
从进程列表中删除(但不杀死)被选种的进程。
Priority —— 
调整选定进程的优先级。相当于renice
Find —— 
按指定匹配串来查找一个或多个进程。
Singal —— 
发送一个kill信号给一个进程。
Find Attribute —— 
根据进程列表中某个字段进行匹配查找一个或多个进程。

进程管理器中View菜单所提供的选项及其相应含义如下:
All —— 
查看所有进程。
By User —— 
查看属于指定用户的进程。
By Tty —— 
查看选定的tty设备上的进程。
By Pid —— 
查看选定的一个或多个进程。
Attributes —— 
指定进程列表中要显示哪些列字段。
Attribute Filter —— 
按指定条件过滤指定列中的项。
Sort —— 
指定按升序或降序进行排列。
Set Auto Refresh —— 
设置自动刷新进程列表的周期。
Refresh Now —— 
立即刷新当前进程列表。
Refresh Tracking —— 
设定进程相关数据刷新后按什么样的方式显
示当前进程列表。
系统默认设置为查看所有用户进程列表。

8.8  
进程间通讯
如果一个进程不与其它任何进程通信,这个进程是一个孤立进程。不同的进程之间进行通讯通过一组工具完成,包括信号(signals),管道(pipe),共享内存(shared memory),信号灯(semaphores),消息(messages)和文件(files)等。

8.8.1  
信号
UNIX
系统中,信号的作用是报告进程错误或异步事件,如:
     
内存读,写错误
     
总线错误
     
系统调用中使用了错误的参量
     
子进程死亡
     
杀死进程
     
挂起/继续进程运行
     
等等。

8.8.2  
管道
1
管道提供了一种机制,允许一个进程把信息传递给另一个进程。UNIX中,管道是一种特殊类型的文件:每个管道都有一个相对应的i节点。程序对管道的操作是通过文件描述符实现的。
2
管道与普通文件是有区别的。在管道中的数据是暂时的,一旦完成数据从
    
管道的读操作,就不能再对它进行读操作了。
      3
 通常,管道使用最多的是进行程序间的信息传递。

8.8.3  
共享内存
   
共享内存是指相互协作的进程,将同一内存区映射到各自的地址空间上。使用共享内存区的所有进程都可以对共享内存区进行读,写操作。因此,需要对共享内存区读,写操作进行协调,以避免可能引起的数据混乱。

8.8.4  
信号灯

1
信号灯是一个同步机制。它所提供的这种机制,可以保证在若干个进程间可以共同使用某些资源,并且可以通过外部事件使这些进程同步。
2
System V信号灯结构中,每个unix信号灯都包含一个计数器。它记录当前可以使用的资源数量。当信号灯的值为0时,表示没有可用资源 

8.8.5  
消息
   
1
UNIX系统中,消息是由一组数据信息组成的,它能够使协同操作的进程之间,通过缓冲区中的消息进行数据交换。
2
UNIX系统提供了一组系统调用,这包括创建消息列队,向消息队列发送消息,从消息队列接收消息或从消息队列中删除消息等等。

8.9  
作业调度

8.9.1  
概念
作业调度是shell的一个特性,它允许用户使用作业调度命令。  
所谓作业调度,实际上是时钟守护进程cron按照用户提交作业时确定的时间,自动地调度作业运行。

8.9.2  
关于cron

      cron(C) 
守护进程将在设定日期的设定时间内自动执行任务。你可以在系统负载较轻的空闲时间里安排运行非交互式的工作。在unix中,可与cron配合提交作业的命令有三个:
at
batchcrontab
     
      cron
进程的活动可以记录在日志文件/var/cron/log中,是否对cron的活动进行记录,取决于变量CRONLOG的设置,这个变量存在文件/etc/default/cron中。在系统默认情况下,这个变量设置为YES,对cron 进程的活动进行记录;只有将变量设置为NO时,才不记录cron进程的活动。

控制安排cron(C)作业的两个文件:
1
/etc/cron.d/cron.allow:这是一个表示谁能够安排cron&作业的确切列表。如果它是一个空文件表明没有一个用户能安排作业。
2
/etc/cron.d/cron.deny:这是一个表示谁不能够安排cron&作业的确切列表。这个文件只有当cron.allow不存在时才起作用。如果它是一个空列表表明任何用户都可以安排作业。
3
、假如这两个文件都不存在,只有超级用户能够安排cron作业假如这两个文件都存在,cron.allow享有优先权。

8.9.3  at
batch命令
    at 
 batch命令的功能是在以后某个时刻执行某些命令。at 命令允许指定作业执行的时间;而batch 命令在系统负载情况允许时才执行作业。
    
通过着两条命令把作业排队后,每个作业的ID号以及它的执行时间都送到标准错误输出上。
    
命令行的结构:
     at time[date][increment]
     at -r job [job ...]
     at -l[job ...]
     batch
            
at 
crontab命令的使用范围:

1
一般情况下,at 命令和batch命令使用于提交一次性运行的作业,即作业只运行一次。
2
crontab命令所提交的作业,一般是按照指定的时间间隔,反复运行。

8.9.4  crontab
命令
    crontab
命令的功能是按照一定的时间间隔调度一些命令的执行。通常这些要运行的命令存放在crontab文件中,crontab文件的名字是/usr/spool/cron/crontabs/username
 
    
命令行结构是:
    crontab [file]
    crontab  -e|-l|-r  [username]
    
这两种crontab命令行都是可以使用的形式。

crontab
文件:

    
作业与它们预定的时间储存在该文件里,它是一个可用任何文本编辑器生成的ASCII 文件。每个用户只能提出一个请求文件,文件里的每一个请 求必须包含以spacestabs分隔的六个域。前五个域指定何时开始工作,第六个是开始运行命令第一到第五个字段的整数取值范围分别是:
    0-59
表示分
    1-23
表示小时
    1-31
表示日
    1-12
表示月份
    0-6    
表示星期(其中0表示星期日)
这五个字段,确定了命令执行的时间和日期。

使用crontab命令需要着重注意:
1
 当对用户的crontab文件进行修改时,并不马上改变当前所提交的作业,其影响只有在系统再次引导后才会产生。这是因为由crontab命令提交的作业,最终是通过cron来调度执行的。而cron只有在系统启动时或使用crontab命令提交新的作业时,才会去读crontabs目录中的文件。
2
 由同一个用户提交的crontab 文件,将覆盖它以前的crontab文件的内容。
3
 在默认的情况下,作业运行结果以邮件的形式发送给用户,如果不喜欢这种形式,可以对输出(其中包括标准输出和错误输出)进行重新定向。

修改用户作业:

步骤1   使用crontab -u user -e (或crontab –e usename)编辑用户user cron(c)
    &nbs

 

p;   作业。
    
步骤2   编辑文件来增加或修改任何作业请求。
     
注:UnixWare 7系统中,默认情况下使用ed编辑器编辑用户user cron作业。若要使用vi来编辑,可按如下操作:
       EDITOR=vi
       export EDITOR

删除用户作业
             crontab –r -u user 
crontab –r username

/usr/spool/cron/crontabs目录中删除用户定义的作业调度文件。 

8.9.5  
任务调度器(Task Scheduler
可以利用任务调度器(在X windows下运行)编辑其他用户的作业调度文件。任务调度器不允许在一条记录中指定一周多天,但可以用多条记录实现定时调度。有下列两种方法来启动任务调度器:
1、 在命令行运行scoadmin task
2、 CDE界面中点击scoadmin项,选择管理工具窗口中的Task Scheduler项。

8.10  
进程审计
通过进程审计可以对系统进行监控,从多方面较为细致地分析系统和用户进程相关信息,能及时、准确地发现系统错误。在/usr/lib/acct目录中包含了所有的进程审计命令。

8.10.1  
打开进程审计
方法一:通过Reports Manager启动进程审计
1、 运行scoadmin
2、 选择System-->;Reports Manager-->;Accounting-->;Enable
3、 退出Reports Manager
也可以直接在命令行输入下列命令进入Reports Manager
# scoadmin rep
之后选择Accounting-->;Enable即可。
这时系统将生成/etc/rc2.d/S02acct/etc/rc0.d/K02acct两个文件,同时在/usr/spool/cron/crontabs/adm文件中加入相关任务调度记录项,这些记录项所执行的操作及其功能如下:
/usr/lib/acct/ckpacct
:检查文件/var/adm/pacct大小。当该文件大小为500个块时,文件被更名为/var/adm/pacct?文件并创建一个新的/var/adm/pacct文件。
/usr/lib/acct/runacct
:生成供Reports Manager使用的报告。
/usr/lib/acct/dodisk
:收集用户磁盘使用情况的有关信息。
/usr/lib/acct/monacct
:生成月审计报表。

方法二:在命令行方式下启动进程审计
运行如下命令:
# /usr/lib/acct/startup
该命令不生成/etc/rc2.d/S02acct/etc/rc0.d/K02acct两个文件以及/usr/spool/cron/crontabs/adm文件中相关任务调度记录项。
打开进程审计后,进程审计记录被写入文件/var/adm/pacct中。

8.10.2  
产生审计报告
1、 运行scoadmin rep,从Reports下拉菜单中可以选择产生各种审计报表。
2、 可以在命令行运行下列命令来查看进程审计报表文件:
      # acctcom [/var/adm/pacct]
      
进程审计文件包含八个字段,分别如下:
      COMMAND NAME
:命令名 END TIME:进程结束时间
   USER
:用户注册名 REALSECS):实时时间(秒)
   TTYNAME
tty设备名 CPUSECS):CPU时间(秒)
   START TIME
:进程启动时间  MEANSIZEK):收入
另外,你可以通过命令行产生各种不同类型的进程审计报表并将报表内容输出到指定文件中。举例如下:
1、 产生某用户的进程审计报表:
      # acctcom –u login_name /var/adm/pacct
2、 产生某用户组的进程审计报表:
      # acctcom –g group_name /var/adm/pacct
3、 产生运行在特定终端上的进程审计报表:
      # acctcom –l /dev/term/00t /var/adm/pacct

8.10.3  
关闭进程审计
方法一:在Reports Manager中关闭进程审计
1、 运行scoadmin
2、 选择System-->;Reports Manager-->;Accounting-->;Enable
3、 退出Reports Manager
也可以直接在命令行输入下列命令进入Reports Manager
# scoadmin rep
之后选择Accounting-->;Disable即可。
这时系统将删除/etc/rc2.d/S02acct/etc/rc0.d/K02acct两个文件,同时在/usr/spool/cron/crontabs/adm文件中删除相关任务调度记录项。
方法二:在命令行方式下关闭进程审计
运行如下命令:
# /usr/lib/acct/shutacct
该命令不删除/etc/rc2.d/S02acct/etc/rc0.d/K02acct两个文件以及/usr/spool/cron/crontabs/adm文件中相关任务调度记录项。

 

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14497次
    • 积分:255
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:7篇
    • 译文:0篇
    • 评论:0条
    文章分类