进程和进程管理(ps,top,pgrep,pstree)

一、进程和程序区别
1.程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。
2.程序和进程无一一对应关系。一个程序可以由多个时程公用;另一一方面,一个进程在活动中有可顺序地执行若干个程序

父子进程的关系
1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程
2.在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
3.父进程终止子进程自然终止。

二、前台进程和后台进程
前台进程
在shell提示处理打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行别一个命令
很简单,我们在执行这个查找命令时,无法进行其它操作,这个查找就属于前台进程

后台进程
在Shell提示处打入命令,若后随一个&,Shell创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。“后台进程必须是非交互式的”
再来看这个命令就变成了后台进程,我们用同样的条件进行查找,把查找记过放到hzh/test/init.find这个文件中。不影响我们前台其它的操作。

三、命令
1、ps 命令 查看静态的进程统计信息
ps aux 查看静态的进程统计信息
a 查看当前系统的所有进程
u 指定用户
x 该用户在所有终端下的进程(tty 终端,ps/0远程登陆)
PID 进程号
在这里插入图片描述
上述各位解释:
USER 进程的属主
PID 进程的ID
PPID 父进程
%CPU 进程占用的CPU百分比
%MEM 占用内存的百分比
NI 进程的NICE值,数值大,表示较少占用CPU时间
VSZ 进程使用的虚拟内存量(KB)
RSS 该进程占用的固定内存量(KB)(驻留中页的数量)
TTY 该进程在那个终端上运行(登录者的终端位子),若与终端无关,则显示(?)
若为pts/0等,则表示由网络连接主机进程
WCHAN 当前进程是否正在进行,若为-表示正在进行
START 该进程被触发启动时间
TIME 该进程实际使用CPU运行的时间
COMMAND 命令的名称和参数
STAT状态位常见的状态字符
D 无法中断的休眠状态(通常 IO 的进程)
R 正在运行可中在队列中可过行的
S 处于休眠状态
T 停止或被追踪
W 进入内存交换 (从内核2.6开始无效)
X 死掉的进程 (基本很少見)
Z 僵尸进程
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存
s 进程的领导者(在它之下有子进程)
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
+ 位于后台的进程组

2、ps -elf 查看静态的进程统计信息
在这里插入图片描述
相关信息的意义:
F 进程的标识(flag),4表示用户超级用戶
S 进程的状态(stat),各STAT的意义见下文
PID 进程的ID
C CPU使用资源的百分比
PRI priority(优先级)的缩写
NI Nice值
ADDR 核心功能,指出该进程在內存的那一部分,如果是运行的进程,一般都是“-”
SZ 占用swap交换分区容量虚拟内存
WCHAN 当前进程是否正在运行,若为“-”表示正在运行
TTY 登录者的终端位置
TIME 用掉的CPU的时间
CMD 所执行的指令

3、top命令 查看动态的进程排名信息(3s 刷新一次)
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下:
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top
s – 改变画面更新周期
在这里插入图片描述
Tasks — 任务(进程)

cpu状态
us — 用户空间占用CPU的百分比。
sy — 内核空间占用CPU的百分比。
ni — 改变过优先级的进程占用CPU的百分比
id — 空闲CPU百分比
wa — IO等待占用CPU的百分比
hi — 硬中断(Hardware IRQ)占用CPU的百分比
si — 软中断(Software Interrupts)占用CPU的百分比

内存状态
total — 物理内存总量
used — 使用中的内存总量
free — 空闲内存总量
buffers — 缓存的内存量

各进程(任务)的状态监控
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

4、pgrep命令 根据特定条件查询进程PID信息
-l 显示PID和进程名
pgrep -l -U [用户名] -t [终端]
在这里插入图片描述
5、pstree命令 以树形结构列出进程信息
pstree -aup
-a 显示完整信息
-u 列出对应用户名
-p 列出对应PID号
在这里插入图片描述
6、手工启动
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
(输出信息中包括后台任务序号、PID号)

Ctrl+Z组合键
将当前进程挂起,即调入后台并停止执行
jobs命令(jobs -l )
查看处于后台的任务列表
fg命令
将后台进程恢复到前台运行,可指定任务序号
Ctrl+C组合键
中断正在执行的命令
在这里插入图片描述
7、终止进程
(1)kill、killall命令
kill用于终止指定PID号的进程
killall用于终止指定名称的所有进程
-9选项用于强制终止
(2)pkill命令
-U 根据进程所属的用户名种植相应进程
-t 根据进程所在的终端终止相应进程
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值