基本进程概述
什么是进程
程序
是静态的概念,下载好的软件包,都是程序
进程
是动态的概念,运行的程序就称为进程
注意点
每一个运行的程序都会分配以下的内容
1.运行内存
2.用户及权限
3.进程状态
4.进程代码(类似系统中运行的顺序)
静态进程
一般指的是二进制的命令程序
动态进程
一般指的是各种服务,应用(会有生命周期)
进程的生命周期
程序运行时进程的状态关系
1.当父进程接收到任务调度时,会通过fork派生子进程来处理,那么子进程会集成父进程的衣钵。
2.子进程在处理任务代码时,父进程会进入等待的状态...
3.如果子进程在处理任务过程中,父进程退出了,子进程没有退出,那么这些子进程就没有父进程来管理了,就变成了僵尸进程。
4.每个进程都会有自己的PID号,(process id)子进程则PPID
进程状态
进程状态管理命令
ps :静态查看后台进程
语法: ps [选项][参数]
进程常用组合
ps aux
查看所有进程
a
all 查看所有终端的相关的进程
u
显示所有的进程用户
x
查看所有与终端无关的进程
USER: #//启动程序的用户
PID: #//父进程ID
%CPU: #//进程占用CPU的百分比
%MEM: #//进程占用内存的百分比
VSZ: #//进程占用多少虚拟内存
RSS: #//进程占用多少真实内存
TTY: #//进程运行的终端
?: #内核运行的程序
tty1: #物理机运行的程序
pts/*: #远程终端运行的程序
STAT: #//进程状态
D: #无法中断的休眠状态(通IO的进程)(I:input o:output)
R: #正在运行的状态
S: #处于休眠状态的进程
T: #暂停或被追踪的状态
W: #进入交换 内存的状态(从内核2.6开始无效)
X: #死亡的进程状态(少见)
Z: #僵尸进程
<: #优先级高的进程
N: #优先级较低的进程
L: #被锁进内存的进程
s: #父进程(在它之下有子进程开启着)
l: #以线程的方式运行 (竖线)|: #以多进程的方式运行的
+: #该进程运行在前台
START: #//进程被触发开启的时间
TIME: #//该进程占用CPU的时间
COMMAND: #//进程运行的命令
[]: #内核启动的进程(内核态)
没[]: #用户启动的进程(用户态)
ps命令讲解
ps 排序
--sort 后面接列名(小写字母)
o
指定查看的列名
ps axo %cpu,%mem,command,user
f
查看子进程
ps -ef | grep [n]ginx
#[n] 这个是属于正泽表达式 过滤后台含有nginx的进程,企业中就是在脚本里判断进程有没有启动 非常重要 要记住
专门查看Pid的命令
pidof +进程名字
pgrep
选项 -l
同时查看pid和服务名
查看进程树
pstree
前提需要安装这个命令:yum install -y psmisc
动态管理进程
第一行内容top -
15:36:57 // 服务器当前时间
up 3 days, 1:02, // 服务器运行的时间,3天1小时2分钟
2users //当前有几个用户登录
load average: 0.00, 0.01, 0.05 //当前服务器的负载,1分钟,5分钟,15分钟
#其中负载是在企业中主要查看的
#第二行内容
Tasks: 91 total, 1 running, 90 sleeping, 0 stopped, 0 zombie
总共91个进程 1个正在运行 90个休眠状态 0个停止 0个僵尸
#第三行内容
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us:用户态占用cpu的百分比 sy:内核态占用cpu的百分比
ni:优先级,优先被调用的进程占用cpu百分比
id:CPU的空闲程度
wa:处于等待状态的进程占用cpu的百分比
hi:硬中断占用cpu的百分比
si:软中断占用cpu的百分比
st:系统中虚拟化产品占用cpu的百分比
#第四行内容
KiB Mem : 995892 total, 703960 free, 129100 used, 162832 buff/cache
buff/cache: 剩下的所有可用内存
#第五行内容
KiB Swap: 1048572 total, 1048572 free, 0 used. 692160 avail Mem
Linux系统中的中断什么是中断
中断是系统用来影响硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来影响设备的请求