linux进程管理

一、程序,进程,线程

        linux程序:系统,用户,固件

  •     程序:一组指令以及参数集合,按照相应的逻辑控制计算机完成特定任务 

      程序==>系统调用==>缓存(内存)==>cpu处理  执行任务
      特点:静态的,封闭的

       

  •     进程:运行的程序,动态。操作系统上的基本单位,有生命周期

         程序==>运行==>进程1,进程2,....
         特点:并发性,交互性
         应用(应用程序)
          |
         内核(内核文件,内核模块,驱动程序)
          |   固件(芯片+程序;)
         硬件

 特点: 操作系统以进程为单位分配系统资源
            每一个进程运行时独立的
            具有独立的地址空间,运行状态
            多个程序同时运行,每一个程序就是一个进程

 

  •      线程:

              一个进程中可有多个线程,而一个线程只能被一个进程所拥有,(linux的进程,线程都有一个独立的资源集)
              每一个线程都有程序的入口,序列,出口
              线程无法独立运行

  •      父进程和子进程

          父进程--->子进程--->子进程
          子进程拥有父进程的资源,权限
          运行自己的程序。(exec)-->exit 
          从而唤醒父进程,清理剩余的结构,然后继续执行自己的程序代码,子进程变成僵尸进程

  •     进程的生命周期---五种基本状态

linux进程管理_第1张图片

二、进程的管理工具

  •       pstree  进程树 查看进程之间的关系

               -p 显示pid
               -u 显示用户
               -A各进程树之间以ASCIIma字符连接

               linux进程管理_第2张图片

  •        ps 

               -a 显示终端下的所有进程
               -u 显示以用户为主的进程
               -x 与au配合使用,显示完整信息
               -l 较长、较详细的将该PID的信息列出
           

     

F 程序的旗标,4代表使用者为superuser
S 程序的状态
UID 执行者的身份
PID 进程的ID号
PPID 父进程的ID
C CPU使用的资源百分比
PRI 进程的执行优先权,越小越早被执行
NI nice值,优先级的修正数值
ADDR 指出程序在内存的那个部分
SZ 使用的内存大小
WCHAN 目前程序是否在运作中
TTY 登入者的终端机位置
TIME 使用掉的CPU时间
CMD 所下达的指令名称
  •        pgrep

               ① -l 同时显示进程名和PID

            linux进程管理_第3张图片
                ② -o 当匹配多个进程是,显示进程号最小的
                ③ -n 当匹配多个进程是,显示进程号最大的

            
             注:父进程号<小于子进程号

  •       kill    killall   pkill

               -9 强制杀死进程

          
               -w 等待进程死亡
               -l 列出已知信号
               -u 指定用户名

              kill 选项  pid

         linux进程管理_第4张图片
    

  •       htop 监控界面

             ①安装epel源
             ②yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
             ③yum install htop -y

linux进程管理_第5张图片

 F1 显示帮助信息
 F2 配置界面中显示信息 
 F3 搜索进程
 F4 过滤器搜索
 F5 以属性方式显示
 F6 排序方式
 F7 调小进程nice
 F8 调大进程nice
 F9 杀死进程
 F10 退出htop
  • 杀死进程httpd 中pid为1613的进程

F9

linux进程管理_第6张图片

 

选中9 回车

 

  •       vmstat linux监控工具

       

             

r 等待执行的任务数
b 等待IO的进程数量
swpd 正在使用虚拟的内存大小,单位k
 free 空闲内存大小
buff 已用的buff大小,对块设备的读写进行缓冲
cache 已用的cache大小,文件系统的cache
nact 非活跃内存大小
active 活跃的内存大小
si 每秒从交换区写到内存的大小
 so 每秒从内存写到交换区的大小
 bi 每秒读取的块数
bo 每秒写入的块数
in 每秒中断数,包括时钟中断
 cs 每秒上下文切换数
 Us 用户程序执行消耗cpu时间
sy 系统进程消耗cpu时间
ld 空闲时间
wa 等待IO时间

 

       参数:

           每两秒采取一次,一共采取5次

        linux进程管理_第7张图片

            -V 显示vmstat

       
           -n 只在开始时显示一次个字段名称


           -a 显示活跃和非活跃内存

       
           -d   显示各个磁盘相关统计信息
           -D   显示指定磁盘总体信息

         linux进程管理_第8张图片
           -s   显示内存相关统计信息及多种系统活动数量

        linux进程管理_第9张图片
           -m   显示slabinfo
           -t    在输出信息的时候也将时间一并输出出来


            -s   使用指定单位显示 默认单位为k
            delay 刷新时间间隔。如果不指定,只显示一条结果
            count 刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这次刷新次数为无穷

 

  •       lsof 文件句柄

linux进程管理_第10张图片

    参数:   

 -c abc 显示以字母abc开头的进程打开的文件
-p 123 列出进程号为123的进程所打开的文件
-g gname/gid 显示归属gname或gid的进程情况
-u uname/uid 显示归属uname或uid的进程情况
+d /usr/local 显示目录下被进程开启的文件
 +D /usr/local 显示目录以及目录下被进程开启的文件
 -d 4 显示使用fd为4的进程
 -i 

  显示符合条件的进程

  • 查看端口为80的进程

    linux进程管理_第11张图片

  • 列出所有tcp网络连接的信息

     linux进程管理_第12张图片

  • 列出PID为4的进程信息

linux进程管理_第13张图片

  •      显示目录以及目录下被进程开启的文件    

 linux进程管理_第14张图片

  •   显示目录下被进程开启的文件

    

三、进程优先级

            0-99 有效的实时优先级/实时进程的实时优先级
            100-139  非有效的实时优先级/用户态的实时优先级/静态优先级
            值越小优先级越高

  •         top

            PR=静态优先级-100 ;-20映射到0,+19映射到39
            相对优先级NI=nice  -20~19

  •       修改nice值

       ①top==>r==>输入PID==>输入优先级数字nice值NI

           修改PID为7的nice值

          

         

         

         linux进程管理_第15张图片


      ② renice [-20,19]PPID

         linux进程管理_第16张图片
  ③htop F7为减,F8为加

  

  •       使用ps查看nice级别并降序排序

            ps axo pid,command,nice,pri --sort=-nice

         linux进程管理_第17张图片
 

  •       进程的状态

              sleeping ---睡眠状态
              stopping --- 停止状态
              running --- 运行状态
              zombie --- 僵死状态
              实时变化

  •             进程在前后台的运行

            ①在前台一次只能运行一次作业
            ②在后台可以运行多个
               * egrep=grep -E
               * ps -ef grep -E  "ping|sleep"   查询ping 和skeep 进程

          例:ping 192.168.253.26> /dev/null >2&1 &  把ping的结果放到/dev/null 放到后台运行
                 ping 192.168.253.26 &  已经在后台运行,在前台输出结果

  •        jobs  查看后台进程和终端

            

  •       sleep 3000 &  进程后台进行

              ctrl+z 把进程挂起
              bg %1 把后台作业1运行  
              fg %1 将作业1调回到前台
              kill %1 先停止作业1,再杀死

杀死作业2

linux进程管理_第18张图片


 

 
               
         
       

 

 

 

 

 

 

 

 


         

你可能感兴趣的:(linux进程管理)