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

什么是进程?

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

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

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

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

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

top动态查看进程

第一行信息:

内 容

说 明

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。

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

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

free查看内存使用情况

# free [选项] 选项说明: -m : 以MB的形式显示内存大小df查看磁盘剩余空间# df [选项] -h :以较高的可读性显示磁盘剩余空间大小

Filesystem

磁盘名称

Size

总大小

Used

被使用的大小

Avail

剩余大小

Use%

使用百分比

Mounted on

挂载路径(相当于Windows 的磁盘符)

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

# 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 和进程名称

kill终止进程

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

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

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