linux基础之 进程

windows有任务管理器可以方便用户查看进程,还可以强制结束进程,而linux自然也有命令方便用户查看和结束进程。

而进程是系统任何行为都需要的 ,比如浏览网页,浏览器作为进程,打开qq聊天,那qq就有相应的进程。

  • 进程的组成部分
    • 分配内存的地址空间。
    • 安全属性,包括所有权等
    • 程序代码是有一个或多个执行进程(而进程包含一个或者多个线程)
    • 进程状态:可运行,睡眠,停止等状态

对于进行Linux自然也有其可以查看管理的命令。

  • 查看命令 :ps(静态查看管理),top(动态查看管理)
  • 停止进程:kill(杀死进程),killall(杀死某程序的所有进程)
  • 修改进行的优先级:nice和renice

查看进程

ps

显示命令输入时的当前进程的状态,虽然类型与windows中的任务管理器,但你会泛型linux输入ps命令后进行信息打印再窗口,但是进程的参数不变了,而windows中的任务管理器如果你观察一些发现进程是参数属性再不停的变化。

格式  ps [参数]

ps的命令很多,如果需要了解详情就直接man ps。而下面列出常用的命令。

参数 意义
-A 列出所有的进程
-a 显示跟当前终端关联的所有进程
-e 此参数的效果和指定”A”参数相同
-f 用ASCII字符显示树状结构,表达程序间的相互关系
-u 基于用户的格式显示 比如查询 test用户的进行 ps -u test
-U 显示某用户ID所有的进程
-w 显示加宽可以显示较多的资讯
-x 显示所有进程,不以终端机来区分
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程

一般使用的命令最多的是

ps -au 或 ps aux
前者注意显示终端的进程,而aux是显示所有的进程,不过其属性列显示的一样

在这里插入图片描述

对于的属性都是什么意思呢?

  • USER:进程的拥有者。
  • PID: 进程的id值
  • %CPU:占用的cpus使用率
  • %MEM:占用内存的使用率
  • VSZ:占用的虚拟内存的大小
  • RSS:占用的内存大小
  • STAT:进程的状态
    • D:无法中断的休眠状态 (通常 IO 的进程)
    • R:正在执行中
    • S:静止状态
    • T:暂停状态
    • Z:不存在但暂时无法消除
    • W:没有足够的内存分页可分配
    • <:高优先级的进程
    • N:低优先级的进程
    • L:有内存分页分配并锁在内存内
    • s:表示进程是控制进程
    • l:表示进程是多线程
    • +:表示当前进程运行再前台
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令,也就是执行的进程名。
# 查询 ping进程
ps -aux | grep ping

#查询用户test的进行
ps -u test

补充pstree

pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。

简单的说就是像是树结构一样展示各个进程直接的关系。

常用参数和意义;

参数 意义
-p 显示进程的pid
-u 显示进程所属的用户
-apnh 显示进程间的关系

演示一下命令后程序的样式

pstree -p

在这里插入图片描述

补充父进程

通过ps -ef 可以看出进程的有一个参数那就是父类进行

ps -ef

在这里插入图片描述

简单的说一下其各自的意义是什么

  • UID : 进程所属的用户id
  • PID: 进程的id
  • PPID:父进程的id
  • C: CPU用于计算执行优先级的因子。数值越大,表明的进程是CPU密集型运行,执行的优先级会降低;数值越小,表明进行的I/O密集型运行,执行优先级会提高。
  • STIME:进行启动的时间
  • TTY:完整的终端名称
  • TIME:CPU时间
  • CMD:启动进程所用的命令和参数。
#查询某进行的父进程id
ps -ef | grep 名字 
  或者
pstree -s |grep 名称

父进程的意思类似下面结构

  • 父类进程
    • 衍生的子进程a
    • 衍生的子进程b

为什么会介绍父进程呢,因为后面再杀死进程时候,会发现杀死父进程附带着所有的子进程也会被杀死。

top

前面虽然可以看进程,但是和windows的任务管理器还是有区别,就是使用ps看得到只是看到命令输入当时的进程,而top能看到的有点类似与window中的任务管理的样子。

# 显示进程信息
top

输出命令显示如下

在这里插入图片描述

  • 第一行(四列用逗号分隔)
    • 当前的时间
    • 运行时间
    • 当前登录系统的用户数量
    • load average后面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况。
  • 第二行(五列用逗号分开)
    • 总进程的数,数值位218
    • 正在运行的进程
    • 睡眠的进程数
    • 停止的进程数
    • 僵尸进程数
  • 第三行(八列逗号分开)
    • 系统用户进程使用的cpu百分比
    • 内核中的进程占用的cpu百分比
    • 用户进程空间内改变过优先级的进程占用cpu百分比
    • 空闲的cpu的百分比
    • cpu等待I/O完成的时间总量
    • 硬中断占比
    • 软中断占比
    • 虚拟机占用物理的时间
  • 第四行 表示物理内存(四列逗号分开)
    • total 物理内存总量
    • free 空闲的内存总量
    • used使用的物理内存总量
    • buff/cache 内存缓存内存量
  • 第五行 表示缓存(四列 逗号分开,与具体意义与第四行一样,不在解释)
  • 第六行
    • USER 进程管理用户
    • PR 进行的优先级
    • NI nice值,负值 表示高优先级,正值表示低优先级
    • VIRT 虚拟内存
    • RST 物理内存
    • SHR 共享内存
    • S 进行的状态
    • %CPU 上次更新到现在的CPU时间占用的百分比
    • %MEN 进程使用五路内存的百分比
    • TIME+ 进程使用的CPU 时间总计,单位1/100秒
    • COMMAND 进程名称
#显示进程信息
top

#显示完整命令
top -c (与top相比 COMMAND 显示的更详细)

# 以累积模式显示程序信息
top -s 

# 设置信息更新次数3次后关闭
top -n 3

# 表示更新周期为10秒(系统默认3秒刷新一次)
top -d 10

# 显示进程号为123的进程信息,CPU、内存占用率等

top -p 123

Guess you like

Origin blog.csdn.net/u011863822/article/details/120659807