进程管理:

 二进制的格式为ELF,是CPU指令集中的指令

 程序=指令+数据,

 进程是程序的副本,可以有多个

 内核是一个资源调度监视器

 Linux是抢占式多任务

 内存被事先划分成多个相同大小的页框

 LIU:最近最少使用

 mmap 共享内存

 通过fork()进程生成

 内存泄漏





 init是所有进程的父进程

 task_struct任务结构:是一种数据结构

 双向循环链表

 线程是一个进程内的多个执行流

WLP:轻量级进程

模式转换:





时钟驱动:

    进程优先级:





    是进程调度的核心资源





    公平:

        结果公平:

起点公平:

算法:完成工作的调度方式

BIG O 

    O(1)

    O(logn)

    O(n)

    O(N^2)

    O(2^N)

一共140个队列

0-99 为实时优先级





进程的分类:

  CPU-Bound:CPU密集型

  I/O-Bound:I/O密集型





进程的分类:

     批处理进程

     交互式进程

     实时进程





进程调度器:

    进程优先级:0-139

        实时优先级: 1-99,数字越大,优先级越高

静态优先级:100-139,nice值调整,数字越大,优先级越低

                    nice:-20,19

   priority:100,139

  动态优先级:由内核维护,动态调整





进程状态:

      运行态:running R

         就绪态:

      睡眠态:sleeping

          可中断睡眠 inruptable

 不可中断睡眠 uninruptable

      停止态:不会被调度 stopped

      僵死态:zombie





进程管理命令:

  ps pstree pidof top htop pmap vmstat dstat





ps:显示进程状态的命令

   进程:

       与终端相关的进程:a

       与终端无关的进程:x

            D:不可中断的睡眠

            R:运行或就绪

            S:可中断的睡眠

            T:停止

            Z:僵死

              

            s:session leader 有子进程

            +:前台进程

            l:多线程进程

            N:低优先级进程

            <: 高优先级进程

            u:以用户为中心显示进程相关信息

            VSZ:虚拟内存集,Virutal menmory Size

            RSS:常驻内存集,

            STIME:启动时间

            TIME:累计占用的内存时间 []表示内核线程

    常用组合一:ps aux

    其他常用选项:

         -e:显示所有进程

         -f:以进程的长格式显示

     常用组合之二:ps -ef

     常用组合之三:ps -eFH

          -F:显示额外信息

     -H:显示进程的层次信息

pstree:显示进程树





      自定义要显示的信息:-o

              ps  auo pid command

               rtprio:实时优先级

      ni:nice值

      pri:优先级

      psr:运行的cpu

pgroup:

   -U Username:仅显示指定用户的进程的进程的PID

   -G Groupname:仅显示指定用户组的进程的进程的PID





pidof:显示指定命令所启动的pid

    pidof command

 

top:

  M:按内存占用百分比大小排序

  P:按cpu占用百分比大小排序,默认

  T:按累计占有时长进行排序

  1:分开显示

  l: 是否显示负载信息

  t:是否显示cpu和进程的统计信息

  m:是否显示内存和交互分区的信息

  q:退出

  k:kill,杀掉进程

  s:改变top刷新频率

top - 11:49:38 up  3:18,  1 user,  load average: 0.00, 0.00, 0.00

Tasks: 120 total,   1 running, 119 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st

Mem:    502168k total,   420160k used,    82008k free,    57496k buffers

Swap:  2097144k total,        0k used,  2097144k free,   254164k cached





  常用选项:

     -d #:指定刷新时间间隔

     -b:以批次显示top的刷新

     -n # 指定指定的次数

htop

    u:选择指定用户的进程

    l: 显示进程所打开的文件列表

    s:显示进程执行的系统调用

    a:显示进程的进程的cpu上

    #:快速将光标定位之指定的PID进程上

    quit





vmstst

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 0  0      0  57460  54564 285520    0    0    30     5   21   14  0  0 99  1 

  procs

    r:运行或等待cpu时间片的进程的个数

    b:被阻塞(通常为等待I/O完成)的进程的长度

  memory

    swpd:从物理内存交互至swap中的数据量

    free:未使用的内存大小

    buffer:buffer空间大小,通常与缓存写操作相关

    cache:cache空间大小,通常与缓存读操作相关

  swap

    si:swap in 数据进入swap中的数据量,通常是速率。kb/s

    so:swap out 数据离开swap中的数据量,通常是速率。kb/s

  io:

    bi:block in:从块设备读入的数据量,通常是速率,kb/s

    bo:block out:保存至块设备中的数据量,通常是速率,kb/s

   

    in:中断发生频率。每秒的中断数

    cs:context switch 上下文切换,进程切换,通常是速率,kb/s

  cpu:

    us:用户空间的使用率

    sy:内核空间的使用率

    id:空闲

    wa:等待的

    st:被偷走的

    

   使用格式

   vmstat [delay [counts]]

     -s:显示内存统计数据





dstat,nice,作业管理





进程:nice

      用来手动调整进程优先级





      默认nice为0.其默认优先级为120





      nice:普通用户只能调大此值





      对于尚未启动的程序

         nice -n # COMMAND 表示进程以#进程启动





       对于运行中的进程:

          renice # PID 调整PID的nice值





        查看 ps axo ni command pid





    kill命令:可以实现向其他进程发送信息

     

       kill -l :可以查看向进程发送的所有信息

       man 7 sigual

       

       kill -SIGNAL PID

             -SIGNAL:

        数字代号:比如1,9等

信号名称:如SIGHUP等

简写的信号名称:如HUP等





        1) SIGHUP:让程序重读配置文件,而不用重启程序

        2) SIGINT:中断信号。Ctrl+c即发送次信号  

        9) SIGKILL:杀死进程

        15) SIGTERM:终止进程,比较优雅(默认)

        

killall -SIGNAL 进程名













Linux的作业控制

    前台作业:占据着一个终端

    后台作业:作业执行时不占据终端,作业启动后就释放终端





    非守护进程类的程序,启动以后都在前台工作

          如果已经启动:前台-->后台。ctrl+z把前台作业送往后台,作业被”停止“

 如果尚未启动:COMMAND &





 退出当前会话,作业也会终止,因为作业与当前终端相关,如果把作业送往后台后,不期望作业随终止结束而停止

            nohup COMMAND &

           

  如何让送往后台的作业继续执行:

   fg [[%]作业号码]:将作业调回前台继续进行

   bg [[%]作业号码]:让作业在后台继续进行

       默认的为最后一个进入后台的任务

              kill %作业号码:终止作业   

  查看作业号:

      jobs

回顾终端:

    /dev/tty#

    /dev/ttyS#

    /dev/pts/#

    /dev/console





pmap pid





00007fb60640d000      4K    rw---  /sbin/init

起始地址              空间  权限    





命令总结:

  ps pstree pidof pgrep top htop vmstat dstat nice renice kill jobs killall fg bg nohup pmap





常用命令举例:

    1.查找名为httpd的程序 ps aux | grep http

    2.杀死一个进程:

        方法①

        首先查出该进程的pid: # pidof httpd

        停止该进程:          # kill -15 pid





        方法②

        强行中断进程(不推荐)

        kill -9 pid

centos中进程管理工具的更多相关文章

  1. linux(centos)下安装supervisor进程管理工具

    在接触supervisor进程管理工具之前,使用springboot打包部署到linux服务器的流程是这样子的,如下图所示: 上图展示的就是最一般的流程,如果项目是小项目或者demo可以这样子去部署, ...

  2. Linux下取代top的进程管理工具 htop

    一.htop 简介 This is htop, an interactive process viewer for Linux. It is a text-mode application (for ...

  3. Python 进程管理工具 Supervisor 使用教程

    Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...

  4. Linux进程管理工具 Supervisord 的安装 及 入门教程

    Supervisor是一个进程管理工具,官方的说法: 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...

  5. Supervisor安装与配置(Linux/Unix进程管理工具)

    原文链接:http://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyth ...

  6. 进程管理工具supervisor

    1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. supervisord负责读入配置文件,然后supervisor ...

  7. Linux进程管理工具Supervisor的安装配置

    目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...

  8. systemd进程管理工具实战教程

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 1. systemd介绍 systemd是目前Linux系统上主要的系统守护进程管理工具,由于 ...

  9. supervisor python开发的进程管理工具

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

随机推荐

  1. pacman安装软件包出现损坏

    状况 File .pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).Do you want to delet ...

  2. css3硬件加速

    你知道我们可以在浏览器中用css开启硬件加速,使GPU (Graphics Processing Unit) 发挥功能,从而提升性能吗? 现在大多数电脑的显卡都支持硬件加速.鉴于此,我们可以发挥GPU ...

  3. dojo.js --dojo Quick Start/dojo入门手册1

    我看了http://www.cnblogs.com/mylem/archive/2009/11/11/1600984.html这篇博客以后 ,就开始设计自己的代码,其实很多解释都是在我的代码里,所以就 ...

  4. H3C常用命令详解

    H3C常用命令详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1.关闭后台日志输出 <yinzhengjie>sys [yinzhengjie]undo info- ...

  5. js的this到底是什么意思

    首先确定一点,this在声明时确定不了,在执行时才知道指向的谁!!! call() , apply(),bind()  方法的用法 比如下面一个例子: function fn(name,age){ a ...

  6. ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展

    ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty.Zend 等系统的类 ...

  7. C++ 输入输出八进制、十进制、十六进制

    默认进制 cin or cout在默认情况下按照十进制输入输出 八进制 要使输入为八进制数,首先切换至八进制输入 cin >> oct; //接下里就可以输入八进制数了 cin >& ...

  8. mac系统如何在桌面新建文件(夹)

    方法一:(终端方式,推荐) 1.在电脑上找到终端 2.指定你想要保存文件的路径,然后回车.例如桌面就是: cd desktop #或是 cd /Users/username/Desktop 有人问:假 ...

  9. luogu 1064 金明的预算方案

    01背包 变形,有主附件的背包内则更改决策 original: 1) 不选   2)选,f[j-w[i]]+v[i] now :     1)不选   2)选主   3)主 附1  4)主 附2   ...

  10. android SQLiteOpenHelper 使用

    1.实体 package mydemo.mycom.demo2.entity; public class UserInfo { private int id; private String usern ...