unix 强制删除进程_unix kill强制撒谎进程 - CSDN
  • wget有以下功能和特点: (1)支持断点下传功能; (2)同时支持FTP和HTTP下载方式; (3)支持代理服务器; (4)设置方便简单; (5)程序小,完全免费; wget的基本语法是: wget 【参数列表】 ...

    kill命令

    Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。

    通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。

    kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程


    命令格式:

    kill  [参数]  进程号


    命令功能:

    发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。如果无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

    当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。

    可以向多个进行发信号/终止它们。


    命令参数:

    • -l 信号 —— 若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
    • -a      —— 当处理当前进程时,不限制命令名和进程号的对应关系
    • -p      —— 指定kill 命令只打印相关进程的进程号,而不发送任何信号
    • -s      —— 指定发送信号
    • -u      —— 指定用户 


    使用示例:

    实例1:杀掉指定进程

    kill 进程号


    实例2:彻底杀死进程

    kill -9 进程号

    实例3:列出所有信号名称




    killall命令

    Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。

    我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一。


    命令格式:

    killall  [参数]  进程名


    命令功能:

    用来结束同名的的所有进程。


    命令参数:

    • -Z 只杀死拥有scontext 的进程
    • -e 要求匹配进程名称
    • -I 忽略小写
    • -g 杀死进程组而不是进程
    • -i 交互模式,杀死进程前先询问用户
    • -l 列出所有的已知信号名称
    • -q 不输出警告信息
    • -s 发送指定的信号
    • -v 报告信号是否成功发送
    • -w 等待进程死亡
    • --help 显示帮助信息
    • --version 显示版本显示


    使用示例:

    实例1:杀死所有同名进程

    命令:

    killall vi

    输出:
    [root@localhost ~]# ps -ef|grep vi
    root     17581 17398  0 17:51 pts/0    00:00:00 vi test.txt
    root     17611 17582  0 17:51 pts/1    00:00:00 grep vi
    [root@localhost ~]# ps -ef|grep vi
    root     17581 17398  0 17:51 pts/0    00:00:00 vi test.txt
    root     17640 17612  0 17:51 pts/2    00:00:00 vi test.log
    root     17642 17582  0 17:51 pts/1    00:00:00 grep vi
    [root@localhost ~]# killall vi
    [root@localhost ~]# ps -ef|grep vi
    root     17645 17582  0 17:52 pts/1    00:00:00 grep vi



    实例2:向进程发送指定信号

    命令:

    [root@localhost ~]# ps -ef|grep vi
    root     17581 17398  0 17:51 pts/0    00:00:00 vi test.txt
    root     17611 17582  0 17:51 pts/1    00:00:00 grep vi
    [root@localhost ~]# ps -ef|grep vi
    root     17581 17398  0 17:51 pts/0    00:00:00 vi test.txt
    root     17640 17612  0 17:51 pts/2    00:00:00 vi test.log
    root     17642 17582  0 17:51 pts/1    00:00:00 grep vi
    [root@localhost ~]# killall vi
    [root@localhost ~]# ps -ef|grep vi
    root     17645 17582  0 17:52 pts/1    00:00:00 grep vi


    输出:
    [root@localhost ~]# vi & 
    [1] 17646[root@localhost ~]# killall -TERM vi
    [1]+  Stopped                 vi
    [root@localhost ~]# vi & 
    [2] 17648[root@localhost ~]# ps -ef|grep vi
    root     17646 17582  0 17:54 pts/1    00:00:00 vi
    root     17648 17582  0 17:54 pts/1    00:00:00 vi
    root     17650 17582  0 17:55 pts/1    00:00:00 grep vi
    [2]+  Stopped                 vi
    [root@localhost ~]# killall -TERM vi
    [root@localhost ~]# ps -ef|grep vi
    root     17646 17582  0 17:54 pts/1    00:00:00 vi
    root     17648 17582  0 17:54 pts/1    00:00:00 vi
    root     17653 17582  0 17:55 pts/1    00:00:00 grep vi
    [root@localhost ~]# killall -KILL vi
    [1]-  已杀死               vi
    [2]+  已杀死               vi
    [root@localhost ~]# ps -ef|grep vi
    root     17656 17582  0 17:56 pts/1    00:00:00 grep vi
    [root@localhost ~]#








    展开全文
  • 同时起多个“后台”进程的命令: #!/bin/bash # Author : mozhiyan # Copyright (c) http://see.xidian.edu.cn/cpp/linux/ # Script follows here: a=0 while [ $a -lt 10 ] do ./tt command&

    说是原创其实大部分文字都是抄录别人的,真正原创莫怪,,

    同时起多个“后台”进程的命令:

    #!/bin/bash
    # Author : mozhiyan
    # Copyright (c) http://see.xidian.edu.cn/cpp/linux/
    # Script follows here:
    
    a=0
    while [ $a -lt 10 ]
    do
        ./tt command&
        a=`expr $a + 1`
    done

    为什么再后台两字上面加上重点符号呢,这是因为普通起进程的时候是同步式的,就是说,上个进程没有跑完下个进程不会跑,使用“./程序 command&”就好了,后台执行,实现异步操作,方便的同时带来了麻烦,进程要是自己不会退出咋办?下面就看看批量强杀进程的文章,

    ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9 

      管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的 

    几个命令: 

    “ps - ef”是Red Hat 里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep LOCAL=NO”的输入。 

      “grep LOCAL=NO”的输出结果是,所有含有关键字“LOCAL=NO”的进程,这是Oracle数据库中远程连接进程的共同特点。 

      “grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。 

      “cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。 

      “xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该令。 

    “kill -9”会强行杀掉指定进程,这样就成功清除了oracle的所有远程连接进程。其它类似的任务,只需要修改“grep LOCAL=NO”中的关键字部分就可以了。 


    ps -ef|grep /usr/local/apache-tomcat-document/|grep -v grep|cut -c 9-15|xargs kill -9

    展开全文
  • 关于HP UNIX 进程控制 TIPS

    千次阅读 2004-08-01 22:55:00
    who > aaa & 后台运行who命令,结果输入到aaa sar -a 查看CPU使用状况 sar -d 查看磁盘运行状态 top 应用程序战胜系统资源状况 iostat 查看系统I/O状况 运行多个后台程序: (cmd1,cmd2,cmd3) & 切换程序在前/后台...

    who > aaa &

       后台运行who命令,结果输入到aaa

      

       sar -a    查看CPU使用状况

       sar -d       查看磁盘运行状态

       top          应用程序战胜系统资源状况

       iostat       查看系统I/O状况

      

       运行多个后台程序:

       (cmd1,cmd2,cmd3) &

      

       切换程序在前/后台工作

       bg %

       fg %

      

       %为作业号

      

       kill -9 强行杀死进程

       kill -l 看终止信号列表

      

       当一个后台命令加了nohup,父进程退出后,1号进程init会接管这个后台进程

      

       nice -n command

      

       n数值越大,降低的优先级越多,加减后系统优先级值在[1,39]

      

      

          ps 显示进程的信息(常常配合GREP来使用,当要查某个应用的话):

             -e 显示所有用户的信息

             -f 显示详细信息

             -l 显示进程优先级        

            

            

         shell_program arg1 arg2 ....

              $0        $1   $2

         想在$9后用超过9的数字作参数,必须在$后使用花括号,如${10}${24}

     

     

         $#变量: 参数个数-1

         $*变量: 参数列表,不包括$0

        

        

        显示环境变量可用:

         echo

         env

         set

        

         unset删除当前某个环境变量的值

        

         将数据传入shell程序的方法

           export环境变量

           命令行参数

           用户输入

        

         read, 参数在shell程序运行时由用户输入,如果read命令中指定的变量超过了用户输入

         的数量,多出来的变量会置成空值,多余的数据将置给最后一个变量

    展开全文
  • UNIX进程管理

    2012-05-28 10:15:30
    8.1 进程的基本概念 8.1.1进程  进程是正在执行的一个程序的实例,通常是由程序,数据集合和进程控制块(Process Control Block 简称PCB)三个部分组成。  程序部分 描述了进程所要完成的功能。  数据...

    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  

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

     8.1.6.2 用户进程  

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

      8.1.6.3 轻负荷进程(LWP)  

     轻负荷进程(Light Weight Process)也叫做附属进程。可以是系统进程,也可以是用户进程。  

      一个进程可以有多个LWP,LWP具有以下一些与众不同的特点:  
    1. 共享同样的进程ID;  
    2. 共享包括地址空间在内的同一资源;  
    3. 通过系统调用和块I/O来使用资源;  
    4. 独立调度。  
      能够在多处理器系统上进行并行调度是LWPs的主要优点。可以用下列方法之一来查看某进程(假定进程PID为0)的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对它的调度。进程优先级从0到127,0为最低优先级。在UnixWare 7系统中,优先级在75至99之间的进程不能用kill命令终止。  

    8.3.2 nice命令  

    修改进程运行的优先级,是通过增加或减少进程的nice值来实现的。但这不会真正改变进程相关的优先级,nice值影响计算进程优先级的算法。  

    nice 命令行的结构  
    nice [increment] [command] [arguments]  
    • increment 增量值,它的取值范围是1—19。如果命令行没有给出这个值,则使用默认值10 。  
    • command 要执行的命令。  
    • arguments 它是command所带的参量。  
    关于nice命令的几点说明  
    1、 每个进程都有自己的nice值,使用nice值来计算这个进程的优先级。nice 值的取值范围从0到39,默认情况下,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命令  

    使用命令kill(C)来终止进程。

    命令行结构:  

    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命令行的说明:  
    1. 第一个命令行中,n 和t 组合定义采样间隔,t 为采样间隔,n为采样次数。t 应该大于5,n 的默认值为1。-o file表示将命令执行结果以二进制格式存放在file(文件名)中。  
    2. 第二个命令行中,-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 cache。buffer 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性能差的缘故。如果%busy和avque的大小相对较高,说明硬盘的传输速度太慢,需要进行调整。  

        如果你的机器有多个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、batch、crontab。  
        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 文件。每个用户只能提出一个请求文件,文件里的每一个请 求必须包含以spaces和tabs分隔的六个域。前五个域指定何时开始工作,第六个是开始运行命令第一到第五个字段的整数取值范围分别是:  
    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)  
    作业。  
    步骤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:用户注册名 REAL(SECS):实时时间(秒)  
    TTYNAME:tty设备名 CPU(SECS):CPU时间(秒)  
    START TIME:进程启动时间 MEANSIZE(K):收入  
    另外,你可以通过命令行产生各种不同类型的进程审计报表并将报表内容输出到指定文件中。举例如下:  
    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文件中相关任务调度记录项。
    展开全文
  • 用于本地进程间通信的套接字称为unix域套接字(unix domain socket)
  • 所有的代码都是在进程中执行的! Unix系统由用户空间(userland)和内核组成。Unix系统内核位于计算机硬件之上,是与硬件进行交互的中介。这些交互包括通过文件系统对硬盘进行读/写、在网络上发送数据和对分配内存等。...
  • UNIX进程管理

    2011-03-02 11:06:00
    <br />8.1 进程的基本概念  8.1.1进程  进程是正在执行的一个程序的实例,通常是由程序,数据集合和进程控制块(Process Control Block 简称PCB)三个部分组成。  程序部分 描述了进程...
  • 进程进程这个抽象的概念可以使我们了解计算机内部的工作过程。进程的控制,内核的进程控制机制和相关的数据结构,详细...Unix支持抢占式多任务系统(preemptivemultitasking),意味着,当一个进程的时间片用完时,内核就强
  • unix 进程调度命令

    2010-12-19 17:15:00
    1.nohup命令  <br />nohup命令的功能是以忽略挂牵和退出的方式执行制定命令.其命令格式是:  <br />nohup command [arguments]  <br />其中,command是所要执行的命令,arguments是指定命令...
  • 它允许进程中断其他进程。 信号是异步处理事件的经典实例。产生信号的事件对进程而言是随机出现的。进程不能简单地测试一个变量(例如errno)来判别是否出现了一个信号,而是必须告诉内核“在此信号出现时,请执行...
  • UNIX再学习 -- 线程

    千次阅读 2018-01-26 10:20:04
    一、线程概念老样子,我们还是按我们讲进程时的方式说起,参看:UNIX再学习 -- 进程环境首先需要了解下,什么是线程。Linux 下的线程,可能我们比较陌生,但是我们一直在玩 Windows 系统。应用程序文件、任务管理器...
  • unix环境下的IPC方式可以分为以下四大类: 消息传递:管道,FIFO,Posix消息队列、System V消息队列; 同步:互斥锁、条件变量、读写锁、Posix有名信号量、Posix无名(基于内存)信号量、System V信号量; 共享内存:...
  • 服务器某程序固定占用某端口,每次通过 lsof -i:端口号 然后用kill -9 ,把进程杀死掉。...进程确定占用某一tcp端口,如下命令可以杀掉该进程。 kill -9 $(netstat -tlnp|grep 1099|awk '{print $7}'|awk -
  • 所谓进程间通讯,顾名思义,就是在2个(多数情况下)或多个进程间传递信息。方法大致如下几种: 1、  文件(file),匿名管道(anonymous pipe),命名管道(named pipe),信号(signal). 2、  System V IPC 包括...
  • 服务器运行状态相关命令 netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。 netstat -antp 查看端口和服务 netstat -anp |grep 端口号 ...
  • Unix记录锁使用总结

    千次阅读 2009-12-13 17:37:00
    1. 原理说明在Unix系统中,记录锁的功能是:一个进程正在读或修改文件的某个部分时,可以阻止其他进程修改同一文件区。即其锁定的是文件的一个区域或整个文件。记录锁有两种类型:共享读锁,独占写锁。基本规则是:...
  • UNIX再学习 -- shell编程

    千次阅读 2017-03-23 09:49:41
    UNIX环境高级编程看了三章,遇到不少重定向等shell命令。本想到Linux时再讲,看来有必要提前了。之前有看过一本《嵌入式Linux软硬件开发详解》这本书里有简单介绍了一部分shell常用命令,就结合它来简单介绍下shell...
  • 使用kill命令批量终止进程

    万次阅读 2016-12-30 10:10:31
    在使用Linux的过程中,有时候我们需要手动去终止进程,少的话还好,找出pid把它kill掉即可。但是,如果有一堆进程需要终止怎么办?今天我就遇到了这样的问题,启动了好多rtp包接收进程,结果停不下来。  用 ps -ef...
  • Unix操作系统常用命令

    千次阅读 2019-10-17 02:48:51
    Unix操作系统常用命令 一、关于档案/目录处理的命令 1、ls——列目录 这是最基本的档案指令。ls的意义为"list",也就是将某一个目录或是某一个档案的内容显示出来。 格式:ls-1ACFLRabcdfgilmnopqrstux-W[sv]...
1 2 3 4 5 ... 20
收藏数 39,943
精华内容 15,977
关键字:

unix 强制删除进程