天天看点

一文详解Linux操作系统进程管理

什么是进程?

当我们打开使用某个软件,操作系统都会启动一个进程。有些软件比较复杂,包括主进程和一系列子进程。比如Windows系统当中Ctrl+Alt+Del组合键,打开任务管理器:

一文详解Linux操作系统进程管理

应用列显示目前正在使用的软件,后台进程是用户不可见的系统服务程序,而且右侧显示每个进程的CPU、内存、磁盘、网络等详细信息。

一文详解Linux操作系统进程管理

点击详细信息,PID(process id)就是当前进程号,进程号是动态变化的,比如,我将第一个PDF阅读器关闭掉重新打开,再显示的就是新的进程号。

一文详解Linux操作系统进程管理

如上图所示,谷歌浏览器就是开启了多个子进程。

一文详解Linux操作系统进程管理

简单来说,程序是人使用计算机语言编写的,可以实现一定功能,并且可以执行的代码集合,而进程是正在执行中的程序。

top动态查看进程

一文详解Linux操作系统进程管理

第一行信息:

内 容 说 明
12:10:24 系统当前时间
up 380 days 系统的运行时间.本机已经运行380天
18 users 当前登录了18个用户
load average: 0.11,0.16,0.12 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载。

第二行信息:

Tasks: 171 total 系统中的进程总数
2 running 正在运行的进程数
169 sleeping 睡眠的进程数
0 stopped 正在停止的进程数
0 zombie 僵尸进程数

第三行信息:

内 容 说 明
Cpu(s) 用户模式占用的 CPU 百分比
sy 系统模式占用的 CPU 百分比
ni 改变过优先级的用户进程占用的 CPU 百分比
id idle缩写,空闲 CPU 占用的 CPU 百分比
wa 等待输入/输出的进程占用的 CPU 百分比
hi 硬中断请求服务占用的 CPU 百分比
si 软中断请求服务占用的 CPU 百分比
st st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行信息:

内 容 说 明
Mem 物理内存的总量,单位为KB
used 已经使用的物理内存数量
free 空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存
buff/cache 作为缓冲的内存数量

第五行信息:

内 容 说 明
Swap 交换分区(虚拟内存)的总大小
used 已经使用的交换分区的大小
free 空闲交换分区的大小
avail Mem 可用内存

swap交换分区 :一般情况下为内存的1~2倍,但是尽量不要超过2G。

一文详解Linux操作系统进程管理

输入M按照内存占用从高到低排序。

一文详解Linux操作系统进程管理

输入P按照CPU占用从高到低排序。

free查看内存使用情况

一文详解Linux操作系统进程管理

# free [选项]

选项说明:

-m : 以MB的形式显示内存大小

df查看磁盘剩余空间

一文详解Linux操作系统进程管理

# df [选项]

-h :以较高的可读性显示磁盘剩余空间大小

Filesystem 磁盘名称
Size 总大小
Used 被使用的大小
Avail 剩余大小
Use% 使用百分比
Mounted on 挂载路径(相当于Windows 的磁盘符)

ps静态查看系统进程的信息

一文详解Linux操作系统进程管理

# ps [选项]

选项说明:

-e : 等价于“-A”,表示列出全部(all)的进程

-f : 表示full,显示全部的列(显示全字段)

netstat查询网络访问信息

# netstat [选项] | grep 进程名称

选项说明:

-t:表示只列出tcp 协议的连接(tcp协议与udp协议)

-n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示 10.1.1.10:80

-l:表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接

-p:表示显示发起连接的进程pid 和进程名称

一文详解Linux操作系统进程管理

kill终止进程

kill 进程名是正常终止进程,然而有些进程不会终止,因此可以用kill 9 进程名强制终止进程,向指定进程发送一个强制终止信号,如果进程还包括很多子进程,需要使用killall 进程名。

如果root用户想要终止某个其他用户的所有进程可以使用killall -u 用户名。

相关推荐

  • Linux革命性工具,shell脚本自动化
  • 什么是Linux系统?我们是否要用Linux
  • 学习Linux命令行,用手就行!
  • Linux Shell正则表达式,高效操作字符串
  • 什么是计算机网络?一文带你了解计算机网络发展
  • 一文详解计算机网络IP地址和子网掩码
  • 一文详解计算机网络TCP/UDP协议,三次握手原理

继续阅读