深入浅出!从零开始的Linux教程 基础篇(进程管理)

进程理解

进程

进程(process):进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

  • 进程是静态的文件
  • 进程是运行中的一个程序的副本(运行程序时会把程序复制到内存缓存空间中)
  • 进程存在生命周期(准备期,运行期,终止期)

准备期——把代码缓存到系统硬件
运行期——处于工作状态
终止期——工作完成后,系统把所占用的系统资源全部回收(如果系统不能回收资源系统会越来越卡)

进程是资源调配的最小单位,线程是进程的最小单位,进程中的所有资源被线程共享

进程状态

状态定义
R(TASK_RUNNING)可执行状态(RUNNING,READY)
S(TASK_INTERRUPTIBLE)可唤醒睡眠状态
D(TASK_UNINTERRUPTIBLE不可唤醒睡眠状态
T(TASK_STOPPED)暂停(停止)状态
Z(EXIT_ZOMBIE)僵死态

1.可运行状态
Running——进行正在运行中
Ready——所有东西加载完毕,在等待队列等待CPU处理

2.可唤醒睡眠状态
S——程序使用CPU处理时,所使用CPU时间过长,(因为CPU处理进程的个数是有限的)所以程序被CPU中止进行下一个进程,进程在这个阶段可以被唤醒

3.不能唤醒睡眠状态
D——所需要的工作中的条件不满足,程序被终止,不能唤醒,等条件满足后才能被唤醒
不能被唤醒的情形:如加载磁盘里比较大的文件,没有加载完毕前不能被唤醒

4.暂停(停止)状态
T——进程被暂停。暂停状态是由用户调整的,所以需要用户的指令来唤醒

5.僵死态
Z——父级进程比子进程结束晚,子进程的资源由父级进程回收。当子进程在系统中所调用的系统资源没有结束时,如果父级进程先结束掉,则没有人回收子进程,一直占用资源成为僵死态。系统不能回收资源会越来越卡。

进程查看

pstree命令

利用pstree命令来用树形结构查看进程
在这里插入图片描述

由于内核本身的原因影响,使得系统无法同时执行所有进程,因此systemd的作用就是对所有进程进行管理,对各个子进程进行初始化,systemd被称为守护进程。守护进程在系统开启时自动打开。

ps命令

ps命令——用来显示当前命令执行时的进程状态

ps命令参数功能
a显示与终端相关的进程(BSD)
x显示与所有终端无关的进程(BSD)
u以用户为归类来显示进程状态信息(BSD)
f层级结构显示进程信息(BSD)
o指定查看选项,pid,comm,nice,pri,pcpu,stat,ppid
-e显示所有进程(uinx)
-f显示完整格式信息(unix)
-H层级结构显示进程的相关信息(unix)
-o指定查看选项,pid,comm,nice,%cpu,%mem,nice (unix)

注意:UNLIX参数带(-)和BSD格式参数不带(-)

PS命令显示信息

UNIX格式字段解释
USER用户名称
PID进程id
%CPU进程占用cpu的百分比
%MEM进程占用内存资源的百分比
VSZ虚拟内存占用大小
RSS常驻内容量(不被系统回收的资源)
TTY字符终端
STAT进程状态
START程序开始运行时间
TIME占用cpu总时间
COMMAND进程名称

在这里插入图片描述

BSD格式字段解释
UID用户名称
PID进程ID
PPID父级进程ID
C进程占用cpu的用量
STIME程序开始运行时间
TTY字符终端
TIMEcpu处理进程的时间
CMD进程名称

在这里插入图片描述

ps  a——显示与终端相关进程(BSD)
在这里插入图片描述
其中TTY表示字符终端

ps  x——显示所有与终端无关进程(BSD)

在这里插入图片描述

ps  ax——显示所有进程,包括与终端相关进程和与终端无关进程(BSD)

注意:ps ax显示进程以资源的方式进行归类(PID从小到大排列)在这里插入图片描述

ps  u——以用户为归类来显示进程状态信息(BSD)
在这里插入图片描述

ps  f ——层级结构显示进程信息(BSD)
在这里插入图片描述

ps  -e 显示所有进程(uinx)
在这里插入图片描述

ps -f 显示完整格式信息(unix)
在这里插入图片描述

ps  -o 指定查看选项,如pid,comm,nice,%cpu,%mem,nice等
在这里插入图片描述

ps可以对当前的某些资源进行排序
[root@localhost Desktop]# ps axo pid,comm,%mem --sort=%mem正序显示
在这里插入图片描述
[root@localhost Desktop]# ps axo pid,comm,%mem --sort=-%mem倒序显示
在这里插入图片描述

pgrep 进程过滤命令

pgrep 显示指定信息进程

pgrep命令参数功能
-u uid显示指定用户进程
-U name显示指定用户进程
-t tty显示指定终端进程
-l显示进程名称
-a显示完整格式进程名
-P pid显示指定进程的子进程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

pidof 根据进程名称获取pid

pidof  vim ——查看一个命令进程的ID

watch -n 1 date

在这里插入图片描述

在这里插入图片描述

top命令的用法

top命令可以真实查看进程状况,具有实时显示功能,默认3s刷新一次

在这里插入图片描述

top 显 示 进 程 信 息 详 解
top——系统当前时间
up——系统运行时长
user——登录当前系统的用户数量
load average——系统的负载,分别代表平均负载1分钟 5分钟 15 分钟的队列长度(uptime)
task——任务总量
running——运行进程数量
sleeping——休眠进程数量
stopped——暂停进程数量
zombie——僵死进程数量
%cpu(s)——cpu占用百分比/使用量
us——用户空间,用户占用CPU量
sy——内核空间,内核占用CPU量
ni ——nice,进程优先级调整占用的CPU量调整时间
id——空闲时间
wa ——等待I/O输入输出时间
hi ——处理硬件中断时间
si ——处理软件中断时间
st ——被虚拟化程序占用的百分比
mem——物理内存使用量
buff/cache——缓存=buff等待写入磁盘的+cache读取的,都可以被系统回收利用(内存的空闲使用量=free+buff/cache)
Swap——虚拟内存使用量,交换分区占用
PR——优先级
NI ——优先级代表的nice值
VIRT——虚拟CPU
RES——常驻内存
SHR——贡献资源
S——状态

top的相关参数

top内部参数功能
Pcpu百分比排序
M内存百分比
T累计占用cpu时间
l开启/关掉uptime信息
t开启/关闭task&cpu信息
s调整刷新频率
k终止进程
u查看指定用户进程

在top命令界面 点按相应的按钮来完成对应的功能

top命令参数功能
top -d指定刷新间隔
top -b以批次方式显示
top -n显示批次数量

进程优先级

按照资源占用划分进程类型

资源使用量进程类型
cpu使用密集(计算量大,如视频处理)CPU-Bound
I/O使用密集(如编辑器)I/O-Bound

注意:对CPU使用密集的程序多分配CPU,但是要调高I/O使用密集程序的优先级

内核优先级的范围
•对Linux而言优先级被划分成固定个数 (0-139),共140个优先级(内核把程序划分为140个队列)
•1-99为实时有优先级,数字越大优先级越高,不能人为干预,是内核对于程序本身的控制,系统自用
•100-139为静态优先级(共40个),数字越小优先级越高,是人为能干预的

NICE值
NICE值:-20~19对用静态优先级,数字越小优先级越高
普通用户只可以调低优先级,超级用户任意调整

关于优先级的命令
• ps   ax  –o • nice –n 优先级 程序
• reince–n 优先级 程序pidnice,pid,comm ——查看进程优先级

在这里插入图片描述

reince  –n  优先级  pid ——更改进程优先级
在这里插入图片描述

• nice   –n  优先级  程序——调整开启进程时的指定优先级

在这里插入图片描述

进程前后台调用

进程前后台调用相关命令

指令含义
jobs查看后台任务
ctrl+z将前台运行进程打入后台
bg+后台运行job号激活后台挂起的进程
fg+后台运行job号调回进程
&运行在后台

ctrl+z——将前台运行进程打入后台

在这里插入图片描述

jobs——查看后台任务

在这里插入图片描述

bg+后台运行job号——激活后台挂起的进程

在这里插入图片描述

注意:bg不能将vim运行,因为vim需要终端的运行环境

fg+后台运行job号—— 调回进程
在这里插入图片描述
&——进程开启后运行在后台
在这里插入图片描述

信号

man 7 signal——查看信号

[root@localhost Desktop]# man 7 signal

进程信号

可控信号类型

可控信号含义
1刷新
2中断键盘输入
3退出键盘
9强制结束进程
15正常关闭进程
18激活进程
19强制暂停(系统不阻止)
20正常暂停(会被系统阻塞,系统认为不适合暂停)

信号命令

kill  信号   pid在这里插入图片描述

killall   信号   进程名称

在这里插入图片描述

pkill    信号   进程名称   (类似于pgrep)
在这里插入图片描述

守护进程systemd

服务型软件的控制不能用kill或者killall这种单独的程序管理工具进行管理,要用systemctl进行管理
在这里插入图片描述

守护进程的定义

• 守护进程就是通常讲Daemon进程
• 是linux后台执行的服务进程
• 不需要终端,是独立于控制终端、周期性地执行某种任务或等待处理某些发生事件
• 不会随终端关闭而停止,直到接受停止信息才会结束(或手动关闭)

守护进程类型

守护进程类型使用系统及特点
Sysv init经典的守护进程类型延用到rhel6(链式启动服务)
upstart做到并行启动rhel6中应用
systemd独立完成启动,rhel7中使用

systemctl 用法之一

指令用途
systemctl list-unit-files查看服务开机运行情况
systemctl list-units查看服务当前运行情况
systemctl list-dependencies查看服务依赖性
systemctl status service查看服务状态
systemctl start service开启服务
systemctl stop service关闭服务
systemctl reload service重新加载服务配置

使用id addr show 命令来查看本机ip
在这里插入图片描述

可以注意到 这台虚拟机的ip是 10.211.55.4
我们打开Mac环境下的终端
利用ssh 命令远程连接虚拟机

ssh -l root 172.25.254.165

在这里插入图片描述

输入密码后就可以连接虚拟机了

systemctl    list-units    --type=service
查看系统当中所有服务当前的运行情况
在这里插入图片描述

sshd服务可以允许其他主机通过ssh连接

systemctl    list-unit-files   --type=service
查看服务开机运行情况
在这里插入图片描述

其中 enabled 表示开机自动启动
disabled 表示不会开机启动
static 表示静态的,不需要进行管理 会自动根据需要打开

systemctl   list-dependencies   service    查看服务依赖性

在这里插入图片描述

systemctl   status  service    查看服务状态
在这里插入图片描述

systemctl   stop  service    关闭服务在这里插入图片描述

systemctl   start  service    开启服务
在这里插入图片描述

systemctl   reload  service    重新加载服务配置(类似于kill -1)
在这里插入图片描述
systemctl 用法之二

指令用途
systemctl restart service重新启动服务
systemctl enable service设定服务开启启动
systemctl enable –now service设定服务开机启动并开启服务
systemctl disable service设定服务开机关闭
systemctl set-default multi-user.target设定系统运行级别为无图形网络模式
systemctl set-default graphical.target设定系统运行级别为图形网络模式
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值