linux进程管理

本文详细介绍了Linux系统中的程序、进程和线程的概念及其关系,强调了进程作为操作系统基本单位的特点。讨论了进程的生命周期、管理工具如pstree、ps、pgrep、kill等的使用,并介绍了htop和vmstat等监控工具。此外,还涵盖了进程优先级、状态以及如何在前后台运行进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、程序,进程,线程

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

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

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

       

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

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

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

 

  •      线程:

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

  •      父进程和子进程

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

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

二、进程的管理工具

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

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

               

  •        ps 

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

     

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

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

            
                ② -o 当匹配多个进程是,显示进程号最小的
                ③ -n 当匹配多个进程是,显示进程号最大的

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

  •       kill    killall   pkill

               -9 强制杀死进程

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

              kill 选项  pid

         
    

  •       htop 监控界面

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

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

F9

 

选中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次

        

            -V 显示vmstat

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


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

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

         
           -s   显示内存相关统计信息及多种系统活动数量

        
           -m   显示slabinfo
           -t    在输出信息的时候也将时间一并输出出来


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

 

  •       lsof 文件句柄

    参数:   

 -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的进程

    

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

     

  • 列出PID为4的进程信息

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

 

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

    

三、进程优先级

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

  •         top

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

  •       修改nice值

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

           修改PID为7的nice值

          

         

         

         


      ② renice [-20,19]PPID

         
  ③htop F7为减,F8为加

  

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

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

         
 

  •       进程的状态

              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


 

 
               
         
       

 

 

 

 

 

 

 

 


         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值