进程是什么?
  程序
    保存在硬盘、光盘等介质中的可执行代码和数据
    是静态保存的代码
  进程
    在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. ArcGIS中的坐标系统定义与投影转换

    坐标系统是GIS数据重要的数学基础,用于表示地理要素.图像和观测结果的参照系统,坐标系统的定义能够保证地理数据在软件中正确的显示其位置.方向和距离,缺少坐标系统的GIS数据是不完善的,因此在ArcGI ...

  2. integer storage and decimal storage differences in java

    package storage.java; public class StorageJava { public static void main(String[] args) { byte b = 1 ...

  3. Java基础之JSONObject的使用

    private static JSONObject createJSONObject() { JSONObject jsonObject = new JSONObject(); jsonObject. ...

  4. Oracle11g服务详细介绍及哪些服务是必须开启的

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/DaisyLoveZly/article/details/79463713 七个服务的含义分别为:1. ...

  5. 通过u盘启动盘重装系统

    前言:一直想通过u盘启动盘给旧本装个win7,但是发现网上完整的教程很少.这里分享给大家我重装的一些步骤和遇到的问题. 前期准备: 1.我们要准备一个容量在4G以上的U盘. 2.我们要将U盘中的重要数 ...

  6. HTML学习---HTTP基础学习详解

    1.HTTP访问服务器原理 客户端输入IP->查找本地hosts缓存->有则直接用获取到的IP访问服务器->服务器响应后返回客户端->客户端页面显示               ...

  7. 火狐浏览器对svg支持的一点不足

    项目中要用svg实现一个如下图所示的风机扇叶转动效果 当用chrome浏览器打开,动画显示正常.用火狐浏览器打开扇叶静止不动,代码如下: <svg xmlns:cge="http:// ...

  8. December 25th 2016 Week 53rd Sunday

    Patience is bitter, but its fruit is sweet. 忍耐是痛苦的,但它的果实是甜蜜的. What can we do if there is no fruit of ...

  9. ZT Linux系统环境下的Socket编程详细解析

    Linux系统环境下的Socket编程详细解析 来自: http://blog.163.com/jiangh_1982/blog/static/121950520082881457775/ 什么是So ...

  10. solr集群搭建(4.10.2)

    配置环境为centos6.8 下载tomcat程序到服务器,并解压启动服务测试 [root@hadoop01 ~]# wget http://apache.claz.org/tomcat/tomcat ...