进程是什么?
  程序
    保存在硬盘、光盘等介质中的可执行代码和数据
    是静态保存的代码
  进程
    在CPU及内存中运行的动态执行的程序代码
    进程是程序运行的实例
  同一个程序可能对应多个进程
 
 
子进程和父进程
  INIT进程是系统中第一个进程,PID永远为1
 
进程相关操作
  ps命令
    用途:查看静态的进程统计信息
    格式: ps aux
  ps -elf
    常用命令选项
    ax:显示所有进程信息
    u:使用以用户为主的格式输出进程信息
    -e:显示系统内的所有进程信息
    -l:使用长格式显示进程信息
    -f:使用完整的格式显示进程信息
 
  ps aux:
    ·USER 进程的用户;
    ·PID 进程的ID;
    ·%CPU 进程占用的CPU百分比;
    ·%MEM 占用内存的百分比;
    ·VSZ 该进程使用的虚拟内存量(KB);
    ·RSS 该进程占用的物理内存量(KB);
    ·TTY 该进程在那个终端上运行(登陆者的终端位置),若与终端无关,则显示“?”,若为pts/0等,则表示由网络连接主机进程;
    ·STAT 进程状态;
    ·START 该进程启动时间;
    ·TIME 该进程实际使用CPU运行的时间;
    ·COMMAND 命令的名称和参数。
 
 
  ps -elf:
    ·F 进程的flag,  4 代表使用者为 super user
    ·S 进程状态
    ·UID 进程的用户;
    ·PID   进程的ID;
    ·PPID 父进程的ID
    ·C   CPU利用率,以整数表示
    ·PRI  Priority的缩写
    ·NI     Nice的缩
    ·PRI/NI 代表此进程被 CPU 所执行的优先顺序,数值越小代表该进程越快被 CPU 执行。
    ·ADDR     指出该进程内存的地址,如果是 running的程序,一般就是 "-"
    ·SZ     占用内存大小;
    ·WCHAN 是否正在运作当中,若为 - 表示正在运作
    ·STIME 进程的启动时间
    ·TTY 该进程在哪个终端上运行(登陆者的终端位置)
    ·TIME      该进程实际使用CPU运行的时间;
    ·CMD   命令的名称和参数;
 
 
  top命令
    用途:查看动态的进程排名信息
[root@localhost ~]# top
top - 06:08:48 up 4 days, 6:57, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 60 total, 1 running, 59 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 0.7% sy, 0.0% ni, 97.4% id, 0.4% wa, 0.1% hi, 1.1% si
Mem: 191228k total, 171424k used, 19804k free, 19436k buffers
Swap: 265064k total, 1284k used, 263780k free, 120480k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6779 root 16 0 2536 832 668 R 3.8 0.4 0:00.04 top
1 root 16 0 2648 604 520 S 0.0 0.3 0:13.54 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0

  

top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
    ·01:06:48 当前时间
    ·up 1:22 系统运行时间,格式为时:分
    ·1 user 当前登录用户数
    ·load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
  top -d 指定刷新间隔时间 默认为s
    空格 为立即刷新
 
w和uptime 命令也能看到这些信息
 
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombieCpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si, 0.0%st
    ·total 进程总数
    ·running 正在运行的进程数
    ·sleeping 睡眠的进程数
    ·stopped 停止的进程数
    ·zombie 僵尸进程数
      ·Cpu(s):
    ·0.3%us 用户空间占用CPU百分比 (用户态)
    ·1.0% sy 内核空间占用CPU百分比 (内核态)
    ·0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
    ·98.7% id 空闲CPU百分比
    ·0.0% wa 等待输入输出的CPU时间百分比
    ·0.0%hi:硬件CPU中断占用百分比
    ·0.0%si:软中断占用百分比
    ·0.0%st:虚拟机占用百分比
 
Mem: 191272k total, 173656k used, 17616k free, 22052k buffersSwap: 192772k total, 0k used, 192772k free, 123988k cached
  ·Mem:
    ·191272k total 物理内存总量
    ·173656k used 使用的物理内存总量
    ·17616k free 空闲内存总量
    ·22052k buffers 用作内核缓存的内存量
  ·Swap:
    ·192772k total 交换区总量
    ·0k used 使用的交换区总量
    ·192772k free 空闲交换区总量
    ·123988k cached 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
 
pstree命令
  用途:以树型结构显示各进程间的关系
  常用命令选项:
    -p:列出进程的PID号
[root@localhost ~]# pstree -p
init,1
├─acpid,2866
├─atd,3060
├─auditd,2516
│ ├─python,2518 /sbin/audispd
│ └─{auditd},2517
├─automount,2842
……

  

pgrep命令
  用途:根据特定条件查询进程PID信息
  常用命令选项:
    -l:列出进程的名称
    -u:根据进程所属的用户名进行查找
    -t:根据进程所在的终端进行查找
[root@localhost ~]# pgrep "init"
1
[root@localhost ~]# pgrep -l "log"
2538 syslogd
2541 klogd
3221 login
[root@localhost ~]# pgrep -l -u teacher -t tty1
27483 bash
27584 vim

  


进程的状态
  D 无法中断的休眠状态(通常 IO 的进程); 
  R 正在运行,在可中断队列中;
  S 处于休眠状态,静止状态;
  T 停止或被追踪,暂停执行;
  W 进入内存交换(从内核2.6开始无效);
  X 死掉的进程;
  Z 僵尸进程不存在但暂时无法消除;
  W: 没有足够的记忆体分页可分配
  WCHAN 正在等待的进程资源;
  <: 高优先级进程
  N: 低优先级进程
  L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存
  s 进程的领导者(在它之下有子进程);
  l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
  + 位于后台的进程组;
 
 
进程优先级设置
  Linux内核的基本任务是调度进程
  每个进程受两个参数影响其调度
  优先级(priority):内核控制动态变化
  值越小越早被cpu执行
  用户无法直接调整数值大小
  niceness:表示进程可被执行的优先级的修正数值 ,可手工修改
  与priority有关
  优先级有正负之分(-20 -19)
  加入nice值后 PRI(新) = PRI(老) + nice
  root可以设置nice值范围(-20 - 19)
  普通用户可以设置nice值范围(0- 19)
  用nice命令新的nice(新开启的进程)
  以新的nice来启动命令
    nice -10 vi & 设置nice值为10
    nice --10 vi & 设置nice值为-10
  用renice命令设置新nice(已经存在的进程)
    renice 10 15132 设置nice值为10
    renice -10 15132 设置nice值为-10
  用top命令修改进程的优先级
  先输入r,然后输入pid,最后输入优先级
 
kill命令
  软中断信号,简称信号。是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。信号机制除了基本通知功能外,还可以传递附加信息。
  kill -l列出Linux系统支持的信号种类
    发送信号的原因
    硬件异常
    软件状态
    终端中断
  kill命令用来发送信号
    kill -信号代码 PID
    进程收到信号后采取的行动
      终止
      忽略信号
      挂起
  用户常用的信号
 
pkill命令
  用途:根据特定条件终止相应的进程
  常用命令选项:
    -u:根据进程所属的用户名终止相应进程
    -t:根据进程所在的终端终止相应进程
[root@localhost ~]# w | grep -v "root"
14:10:10 up 6:08, 4 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
teacher tty1 - 14:04 5:34 0.16s 0.16s -bash
hack pts/1 173.17.17.174 14:05 4:32 0.17s 0.17s -bash
[root@localhost ~]# pkill -9 -t pts/1
[root@localhost ~]# w | grep -v "root"
14:12:22 up 6:10, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
teacher tty1 - 14:04 7:46 0.16s 0.16s -bash

   ↑踢出登录到系统的可疑用户hack

总结:

  理解进程的概念

  掌握基本的进程查看命令

  掌握进程优先级的配置

  

【Linux】进程管理的更多相关文章

  1. Linux进程管理子系统分析【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51298732 Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码 ...

  2. 12个Linux进程管理命令介绍(转)

    12个Linux进程管理命令介绍 [日期:2015-06-02] 来源:Linux中国  作者:Linux [字体:大 中 小]   执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的 ...

  3. Linux进程管理知识整理

    Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) ...

  4. Linux性能及调优指南(翻译)之Linux进程管理

    本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...

  5. Linux进程管理专题

    Linux进程管理 (1)进程的诞生介绍了如何表示进程?进程的生命周期.进程的创建等等? Linux支持多种调度器(deadline/realtime/cfs/idle),其中CFS调度器最常见.Li ...

  6. [转帖]十二 个经典 Linux 进程管理命令介绍

    https://www.cnblogs.com/swordxia/p/4550825.html 接了 http referer 头 没法显示图片 可以去原始blog 里面去查看.   随笔- 109  ...

  7. Linux进程管理 (1)进程的诞生

    专题:Linux进程管理专题 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 L ...

  8. Linux进程管理 (2)CFS调度器

    关键词: 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 Linux进程管理 ( ...

  9. Linux进程管理 (7)实时调度

    关键词:RT.preempt_count.RT patch. 除了CFS调度器之外,还包括重要的实时调度器,有两种RR和FIFO调度策略.本章只是一个简单的介绍. 更详细的介绍参考<Linux进 ...

  10. Linux进程管理工具

    Linux进程管理工具 Htop yum install htop 参考帮助: http://blog.csdn.net/skh2015java/article/details/53173896 Li ...

随机推荐

  1. OkHttp3源码详解(三) 拦截器-RetryAndFollowUpInterceptor

    最大恢复追逐次数: ; 处理的业务: 实例化StreamAllocation,初始化一个Socket连接对象,获取到输入/输出流()基于Okio 开启循环,执行下一个调用链(拦截器),等待返回结果(R ...

  2. 网页简单布局之结构与表现原则(HTML/CSS)

    结构 样式 行为真正的分离 前端初级人员会在页面上单纯的用各个div把相关内容独立开: 前端中级人员明白相关属性的设置会给元素带来什么改变,从而减少div的书写: 前端高级人员会以及其简单的和稳定的方 ...

  3. (Stanford CS224d) Deep Learning and NLP课程笔记(一):Deep NLP

    Stanford大学在2015年开设了一门Deep Learning for Natural Language Processing的课程,广受好评.并在2016年春季再次开课.我将开始这门课程的学习 ...

  4. is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c:严格输入了匹配通配符,但还是找不到元素“jee:jndi-lookup”的声明。

    由于未添加xsd声明引起

  5. ActiveMQ queue 代码示例

    生产者: package com.111.activemq; import javax.jms.Connection; import javax.jms.ConnectionFactory; impo ...

  6. --Too small initial heap for new size specified

    虽然Java屏蔽了一下内存细节,但是有时候,了解一下这些常识还是有好处的,特别是一些面试,总是盯着这些玩意不放手. JVM启动以后,会分配两类内存区域,一类用于开发人员使用,比如保存一些变量,对象等, ...

  7. January 03 2017 Week 1st Tuesday

    It is always morning somewhere in the world. 世界上总是有一个地方可以看到阳光. There may be always someone who can e ...

  8. ZT C/C++变量命名规则,个人习惯总结

    C/C++变量命名规则,个人习惯总结 (2012-10-31 13:48:10) 转载▼ 标签: c/c变量命名规则 c语言变量命名 c变量命名 规则规范 it 分类: C/VC C_C++变量命名规 ...

  9. vue 项目搭建笔记1

    1.首先安装node.js(傻瓜式安装,安装路径默认C盘) 2.打开node.js command prompt 3.进入想放项目的文件夹.如D:  -->回车 4.进入具体文件夹,如cd wo ...

  10. jq给同一元素绑定多个事件

    $(".aa").on("click",function(){ alert(1) }).on("mousemove",function(){ ...