1、Linux进程的相关概念

1.1、进程的类型

  1. 前台进程
    20211226145600.png

    • 前台进程就是具有终端可以和用户交互的进程
  2. 后台进程

    • 与前台进程相对,没有占用终端的就是后台进程
    • 后台程序基本上不和用户交互,优先级比前台进程低
    • 将需要执行的命令以&符号结束
    • 使用jobs可以查看后台进程
  3. 守护进程

    • 守护进程(daemon)是特殊的后台进程
    • 很多守护进程在系统引导的时候启动,一直运行直到系统关闭
    • Linux有很多典型的守护进程
      • 20211226145620.png
      • 进程名字以“d”结尾的一般都是守护进程

1.2、进程的标记

1.2.1、进程ID(Process ID)

  • top:查看所有的进程
  • 进程ID是进程的唯一标记,每个进程拥有不同的ID
  • 进程ID表现为一个非负整数,最大值由操作系统限定
  • 20211226145639.png
  • 20211226145705.png
    • 父子进程关系可以通过pstree命令查看
  • ID为0的进程为idle进程,是系统创建的第一个进程
  • ID为1的进程为init进程,是0号进程的子进程,完成系统初始化
  • Init进程是所有用户进程的祖先进程

1.2.2、进程的状态标记

  • man ps
状态符号 状态说明
==R== ==(TASK_RUNNING),进程正处于运行状态==
==S== ==(TASK_INTERRUPTIBLE),进程正处于睡眠状态==
D (TASK_UNINTERRUPTIBLE)进程正处于IO等待的睡眠状态
T (TASK_STOPPED)进程正处于暂停状态
Z (TASK_DEAD or EXIT_ZOMBIE)进程正处于退出状态或僵尸进程

20211226145719.png

2、操作Linux进程的相关命令

2.1、ps命令

  • ps命令常用于显示当前进程的状态

  • ps命令常配合aux参数或ef参数和grep命令检索特定的进程

  • ps

    • 20211226145733.png
  • ps -aux :打印所有进程的详细信息

    • 20211226145742.png
  • ps -u root : 查看root用户的进程

    • 20211226145751.png
  • ps -ef --forest:可以打印进程的父子状态

    • 20211226145758.png
  • ps -aux --sort=-pcpu:按照CPU的使用频率来排序

    • 20211226145807.png
  • ps -aux --sort=-pmem:按照内存的使用情况来排序

    • 20211226145817.png

2.2、top命令

20211226145840.png

  • PID:进程ID
  • USER:进程的用户
  • PR:进程的优先级
  • NI
  • VIRT:进程的虚拟内存
  • RES
  • SHR
  • S:进程状态
  • %CPU:进程所使用的CPU
  • %MEM:进程所使用的的内存
  • TIME+:进程运行的时间
  • COMMAND:进程的命令

20211226145853.png

  • total:所有的内存
  • free:空闲的内存
  • used:已经使用的内存
  • buffer/cache:已经被缓存起来的内存(指的是高速缓存器吗)

2.3、kill命令

kill -9:kill给进程发送信号,9的意思是让指定进程无条件的停止下来

  • kill命令发送指定信号给进程
  • kill -l可以查看操作系统支持的信号

==只有(SIGKILL 9)信号可以无条件终止进程,其他信号进程有权忽略==