进程与程序
- 用户执行程序时,程序由磁盘加载到内存中成为一个个体,即进程,并根据不同的用户权限生成一个PID,用于系统管理进程。
- 子进程与父进程
fork and exec:系统先fork出一个与父进程相同的暂存进程,该进程与父进程的唯一区别是PID不同,还会多一个PPID父进程号,然后暂存的进程开始以exec的方式加载实际要执行的命令
常驻进程被称为服务
job control 管理
- command &
将命令放至后台执行,若打印信息较多,可进行数据重定向,以免影响前台工作 -
Ctrl + Z
将命令放到后台暂停,重新获取前台操控权,输出提示中的‘+’表示最近一个被怼进后台的工作 -
jobs:查看后台工作状态
jobs [参数]
-l:列出job number、command及PID
-r:仅列出后台run的工作
-s:仅列出后台shop的工作 -
fg:将后台命令拿到前台处理
fg %jobnumber -
bg:让工作在后台run
bg %jobnumber -
kill:管理后台工作
kill -signal %jobnumber
kill -l:列出kill可以使用的signal
signal:
-1:重新读取参数配置文件,类似于reload
-2:与Ctrl+C功能相同
-9:立即强制删除一个工作
-15:以正常的方式结束一项工作
kill后的数字默认为PID,加上%才表示jobnumber
脱机管理
- 后台模式指的是不会被Ctrl+C 打断,并未真正放入系统后台,job的执行仍与终端机有关,当系统脱机时,工作会被中断
可以使用at,at中的命令在系统后台中执行,也可以使用 -
nohup
nohup [ 命令与参数]:在终端机前台工作
nohup [ 命令与参数] &:在终端机后台工作
exit后再登录,nohup后的命令仍在后台
进程查看
-
ps
ps aux:查看所有进程
ps -lA:查看所有系统数据
ps axjf:连同部分进程树状态
参数:
-A:所有进程均显示出来
-a:与终端无关的进程
-u:有效用户相关进程
x:通常与a一起使用,列出完整信息
输出格式规划:
l:较长、较详细的将该PID信息列出来
j:工作格式输出
-f:更加完整地输出
[图片上传失败...(image-a5f100-1721089471657)]
F为进程标志,说明进程权限,4表示该进程权限为root
S为进程状态,R(run) S(sleep) T(stop) Z(zomble) D(不可唤醒的睡眠状态)
C为CPU使用率,单位为百分比
PRI/NI代表进程优先级,数值越小等级越高
SZ为进程所占内存
-
pstree
查看进程树 -
top:动态查看
top [-d 数字] | top [-bnp]
-d:刷新频率,后接秒数 -b:以批次的方式执行top
-n:与-b搭配,代表需要进行几次top的结果输出
-p:指定PID进行监测
[图片上传失败...(image-bcb45b-1721089471657)]
-
killall:不必使用进程PID,直接使用进程名
killall [-iIe] [进程名称]
-i:交互式 -I:命令名称忽略大小写 -e:exact
进程管理
- nice:给新的命令一个nice值
nice [-n 数字] command
-n后接数字范围为 -20 - 19 - renice:已存在的进程重新调整
renice [number] PID
系统资源查看
- free:查看内存
free [-b|-k|-m|-g] [-t]
-b:指定显示单位,b,m,k,g
-t:显示物理内存与swap总量 - uname:系统与内核相关信息
uname [-asrmpi]
-a:所有系统相关信息 -s:内核 -r:内核 -m:硬件 -p:CPU -i:硬件平台 - uptime
与top最上面一行相同 - netstat:跟踪网络
netstat [-atunlp]
-a:所有连接,包括socket -t:tcp网络数据包数据 -u:udp网络数据包数据
-n:不列出服务名称,以端口号来表示
-l:列出正在网络监听的服务
-p:列出网络服务的进程PID - dmesg:分析内核信息
- vmstat:检查系统资源变化,CPU/内存/磁盘
vmstat [参数] [ 延迟 [ 总计检测次数] ]
-a: 使用活跃与否来显示内存信息
-f:系统fork的进程 -s:将内存变化列表说明 -S:后接显示单位
-d:列出磁盘的读写总量统计表 -p 分区:显示分区的读写总量统计表
[图片上传失败...(image-b0af16-1721089471657)]
每秒刷新一次,共进行三次
r:等待运行进程数 b:不可唤醒进程数
除了free其他memory相关参数均为使用量
swap参数反应内存与磁盘的数据交换操作
io反应系统I/O繁忙程度
system选项(in中断次数,cs时间切换次数)反应系统与接口设备的通信
CPU选项:
[图片上传失败...(image-202f83-1721089471657)]
可通过man vmstat查看个字段含义
/proc:内存中的数据文件
[图片上传失败...(image-847ae4-1721089471657)]
各进程的PID号以目录的形式存在
查询已打开的文件或已执行程序打开的文件
- fuse:通过文件找出正在使用该文件的程序
fuse [-umv] [-k [i] [-signal] ] file/dir
-u:除了进程的PID,同时列出进程的所有者
-m:将文件主动上提到文件系统的顶层,对umount不成功很有效
-v:列出每个文件与程序还有命令的完整相关性
-k:找出使用改文件的进程PID,并试图将signal给予该PID
-i:与k配合,再删除PID前,询问用户意愿
-signal:默认为-9
[图片上传失败...(image-5853fc-1721089471657)]
access:
c:此进程在当前目录下 e:可被触发为执行状态 f:是一个被打开的文件
r:代表顶层目 F:文件被打开了,不过在等待回应中 m:可能为分享的动态链接库
- lsof:列出被进程打开的文件
lsof [-aUu] [+d]
-a:多项数据须同时成立才显示结果
-U:仅列出Unix like系统的socket文件
-u username:列出该用户相关进程所打开的文件
+d dir:找出某个目录下已打开的文件 - pidof:找出某个正在执行的进程的pid
pidof [-sx] program_name
-s:仅列出一个PID -x:同时列出该program name可能的PPID的那个进程