【Linux】进程和计划任务

目录

一、进程介绍

1.1 进程与线程的定义

1.1.1 进程(Process)**

1.1.2 线程(Thread)**

1.1.3 进程与线程的区别

1.2 进程的特征

1.3 进程状态

1.3.1 进程的基本状态

1.3.2 进程更多的状态

1.4 进程的优先级

1.5 进程间通信

1.6 进程的分类*

二、进程管理

2.1 查看进程命令

2.1.1 ps——查看进程静态信息

2.1.2 top——查看进程动态信息

2.1.2.1 第一部分解析

2.1.2.2 第二部分解析

2.1.2.3 htop

2.1.3 pgrep——查指定进程信息

2.1.4 pstree——查看进程树**

2.1.5 pidof——通过进程名查看PID号

2.1.6 lsof——系统管理监控、诊断工具

2.2 监控系统资源命令

2.2.1 vmstat——动态查看系统资源使用情况

 2.2.2 iostat——查看每个磁盘的IO性能

2.2.3 iftop——动态查看网络流量

2.3 控制进程命令

2.3.1 启动程序

2.3.2 调整前台程序命令

2.3.3 管理后台任务命令

2.3.4 结束进程

三、计划任务 

3.1 at——一次性任务

3.2 crontab——周期计划


一、进程介绍

程序:执行特定任务的一串代码,静态存放于硬盘中

1.1 进程与线程的定义

1.1.1 进程(Process)**

进程就是运行中的程序的某个实例,是有生命周期的,是资源分配的最小单位。

开启进程会消耗硬件资源,如果硬件资源消耗完,后果造成生产事故。

需要关注的五大性能:

  1. 内存使用率                查看命令:free -h、top
  2. CPU使用率                查看命令:top、ps、w、iostat、uptime
  3. 硬盘容量                    查看命令:df
  4. 硬盘读写性能            查看命令:iostat、vmstat -d
  5. 网络带宽                    查看命令:iftop

1.1.2 线程(Thread)**

线程是进程内的一个执行单元或子任务,是任务调度的基本单位共享所属进程的资源

1.1.3 进程与线程的区别

  • 进程之间相互独立,一个程序的崩溃不会影响其他进程,而一个线程崩溃可能影响整个进程
  • 进程之间需要通信共享数据,线程之间共享内存来共享数据

1.2 进程的特征

  • 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;
     
  • 并发性:任何进程都可以同其他进程一起并发执行;
     
  • 独立性:进程是系统进行资源分配和调度的一个独立单位;
     
  • 结构性:进程由程序、数据和进程控制块三部分组成。

1.3 进程状态

1.3.1 进程的基本状态

  • 创建状态:进程在创建时需要申请一个空白PCB(process control block进程控制块),向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态
     
  • 就绪状态(等待):进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行
     
  • 执行状态:进程处于就绪状态被调度后,进程进入执行状态
     
  • 阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用
     
  • 终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行
     

1.3.2 进程更多的状态

  • 运行态:running
     
  • 就绪态:ready
     
  • 睡眠态:分为两种,可中断:interruptable,不可中断:uninterruptable
     
  • 停止态:stopped,暂停于内存,但不会被调度,除非手动启动
     
  • 僵尸态:zombie,父进程结束前,子进程不关闭,杀死父进程可以关闭僵死态的子进程


1.4 进程的优先级

进程优先级分为Priority(PRI) Nice (NI),两者之和为一个进程的最终优先级,越小优先级越高

其中,PRI由内核动态调整,无法被用户修改 ;

NI值则可以被用户所调整,其范围为-20~19,root可以修改负数范围,普通用户只能修改0~19

临时修改NI值:

renice -n -20 2118


1.5 进程间通信

同一主机:

pipe 管道,单向传输             cmd1  |  cmd 2
socket   套接字文件,双工通信
Memory-maped file   文件映射,将文件中的一段数据映射到物理内存,多个进程共享这片内存
shm shared memory 共享内存
signal 信号
Lock   对资源上锁,如果资源已被某进程锁住,则其它进程想修改甚至读取这些资源,都将被阻塞,直到锁被打开
semaphore 信号量,一种计数器
kill 发信号

不同主机:socket=IP和端口号

RPC remote procedure call   远程调用
MQ 消息队列,生产者和消费者,如:Kafka,RabbitMQ,ActiveMQ

1.6 进程的分类*

  • 守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
  • 前台进程:跟终端相关,通过终端启动的进程

注意:两者可相互转化

二、进程管理

2.1 查看进程命令

2.1.1 ps——查看进程静态信息

ps命令主要用于显示包含当前运行的各进程完整信息的静态快照。

一般ps的使用场景伴随着选项,不会单独使用。

选项说明
a显示当前终端下的所有进程信息,包括其他用户的进程
u使用以用户为主的格式输出进程信息
x显示当前用户在所有终端下的进程信息

习惯上将上述选项组合在一起使用,如' ps aux ' 或 ' ps -elf '

执行' ps aux '命令后,将以简单列表的形式显示出进程信息。

表头含义
USER该进程是由哪个用户产生的。
PID进程的 ID。
%CPU该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。
%MEM该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。
VSZ该进程占用虚拟内存的大小,单位为 KB。进程请求需要的内存大小。
RSS该进程占用实际物理内存的大小,单位为 KB。系统真实分配的内存大小。
TTY该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。?代表和终端无关,系统进程
STAT进程状态。常见的状态有以下几种: -D:不可被唤醒的睡眠状态,通常用于 I/O 情况。 -R:该进程正在运行。 -S该进程处于睡眠状态,可被唤醒。 -T:停止状态,可能是在后台暂停或进程处于除错状态。 -W:内存交互状态(从 2.6 内核开始无效)。 -X:死掉的进程(应该不会出现)。 -Z僵尸进程。进程已经中止,但是还是占用硬件资源。 -<:高优先级(以下状态在 BSD 格式中出现)。 -N:低优先级。 -L:被锁入内存。 -s:包含子进程。 -l:多线程(小写 L)。 -+:位于后台。
START该进程的启动时间。
TIME该进程占用 CPU 的运算时间,注意不是系统时间。
COMMAND产生此进程的命令名。

执行' ps -elf '后,则将以长格式显示系统中的进程信息,包括更丰富的内容。

表头含义
F进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限;
S进程状态。具体的状态和"psaux"命令中的 STAT 状态一致;
UID运行此进程的用户的 ID;
PID进程的 ID;
PPID父进程的 ID;
C该进程的 CPU 使用率,单位是百分比;
PRI进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改
NI进程的优先级,数值越小,该进程越早被执行;可以人为修改
ADDR该进程在内存的哪个位置;
SZ该进程占用多大内存;
WCHAN该进程是否运行。"-"代表正在运行;
TTY该进程由哪个终端产生;
TIME该进程占用 CPU 的运算时间,注意不是系统时间;
CMD产生此进程的命令名;

2.1.2 top——查看进程动态信息

top命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次。 

选项:

  • -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;

  • -b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;

  • -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;

  • -p 进程PID:仅查看指定 ID 的进程;

  • -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;

  • -u 用户名:只监听某个用户的进程;

在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作

  • ? 或 h:显示交互模式的帮助;

  • c:按照 CPU 的使用率排序,默认就是此选项;

  • M:按照内存的使用率排序;

  • N:按照 PID 排序;

  • T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;

  • k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;

  • r:按照 PID 给某个进程重设优先级(Nice)值;

  • q:退出 top 命令;

2.1.2.1 第一部分解析

第一行为任务队列信息,具体内容如表 所示。

内 容说 明
16:10:03系统当前时间
up 7:41系统的运行时间,本机己经运行7小时41分钟
2 users当前登录了两个用户
load average: 0.00,0.01,0.05系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)

第二行为进程信息,具体内容如表

内 容说 明
Tasks: 148 total系统中的进程总数
1 running正在运行的进程数
147 sleeping睡眠的进程数
0 stopped正在停止的进程数
0 zombie僵尸进程数。如果不是 0,则需要手工检查僵尸进程

第三行为 CPU 信息,具体内容如表

内 容说 明
Cpu(s): 1.3 %us用户模式占用的 CPU 百分比 个人用户开启的进程占用的 cpu 率
2.0%sy系统模式占用的 CPU 百分比
0.0%ni改变过优先级的用户进程占用的 CPU 百分比
96.7%id空闲 CPU 占用的 CPU 百分比
0.0%wa等待输入/输出的进程占用的 CPU 百分比
0.0%hi硬中断请求服务占用的 CPU 百分比
0.0%si软中断请求服务占用的 CPU 百分比
0.0%stst(steal time)意为虚拟程序占用 cpu 时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行为物理内存信息,具体内容如表buff cache

内 容说 明
Mem: 1867024k total物理内存的总量,单位为KB
571504k used己经使用的物理内存数量
53840k free空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存
65800k buffers作为缓冲的内存数量

缓冲(buffer)和缓存(cache)的区别:

  • 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
     
  • 缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

第五行为交换分区(swap)信息,如表

内 容说 明
Swap: 524280k total交换分区(虚拟内存)的总大小
147920 used已经使用的交换分区的大小
524280k free空闲交换分区的大小
409280k cached作为缓存的交换分区的大小

通过 top 命令的第一部分就可以判断服务器的健康状态。如果 1 分钟、5 分钟、15 分钟的平均负载高于 1,则证明系统压力较大。如果 CPU 的使用率过高或空闲率过低,则证明系统压力较大。如果物理内存的空闲内存过小,则也证明系统压力较大。

这时,我们就应该判断是什么进程占用了系统资源。如果是不必要的进程,就应该结束这些进程;如果是必需进程,那么我们该増加服务器资源(比如増加虚拟机内存),或者建立集群服务器。

2.1.2.2 第二部分解析

内容说明
PID进程的ID
USER该进程所属的用户
PR优先级,数值越小优先级越高
NI优先级,数值越小、优先级越高
VIRT该进程使用的虚拟内存的大小,单位为 KB
RES该进程使用的物理内存的大小,单位为 KB
SHR共享内存大小,单位为 KB
S进程状态
%CPU该进程占用 CPU 的百分比
%MEM该进程占用内存的百分比
TIME+该进程共占用的CPU时间
COMMAND进程的命令名
2.1.2.3 htop

一种内容更丰富的动态进程信息查看工具

2.1.3 pgrep——查指定进程信息

通过pgrep命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性查询特定进程的PID号。

` ps aux | grep "##" `与` pgrep `功能类似

格式

pgrep [选项] 表达式

选项

  • -u: 指定用户
  •  举例:查看zhangsan用户执行了多少进程

    pgrep -u zhangsan | wc -l 
  • -l: 显示进程名

        举例:查看所有包含‘sh’的进程名与PID

pgrep -l sh

  • -a: 显示完整格式的进程名        
pgrep -a "sh"

  • -P pid: 显示指定进程的子进程


2.1.4 pstree——查看进程树**

pstree命令可以输出Linux系统中各种进程的树形结构,更加直观的判断出各进程之间的相互关系

格式

pstree   [OPTION] [ PID | USER ]  

选项

-a	显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
-p 显示PID
-T 不显示线程thread,默认显示线程
-u 显示用户切换
-H pid 高亮显示指定进程及其前辈进程

常用命令举例:

1. 查看进程号为5251的进程

pstree 5251

2. 查看用户为lisi的进程

pstree lisi

3. 显示所有进程的PID

pstree -p

2.1.5 pidof——通过进程名查看PID号

命令格式如下:

pidof [进程名]

2.1.6 lsof——系统管理监控、诊断工具

命令通式:

lsof [选项]
选项功能
-c 字符串只列出以字符串开头的进程打开的文件。
+d 目录名列出某个目录中所有被进程调用的文件。
-u 用户名只列出某个用户的进程打开的文件。
-p pid列出某个 PID 进程打开的文件。
-i :80哪些进程打开了端口号80

误删文件找回

(有人使用的情况下,修复删除文件,否则无用)

 
1. 在~目录下创建一个文件test.txt

2. 使用第二个终端打开此文件,在第一个终端删除该文件

3. 使用lsof | grep deleted 命令查看刚刚被删的文件的PID号

4. 进入/proc/PID号/fd中查看

找到3为刚刚删除的文件

5. 使用cat 3 > ~/test.txt进行文件修复

2.2 监控系统资源命令

2.2.1 vmstat——动态查看系统资源使用情况

命令格式如下:

vmstat [-a] [刷新延时 刷新次数]


vmstat 1 3
#使用vmstat检测,每个1秒刷新一次,共刷新3次
选项含义
-fs

-f:显示从启动到目前为止,系统复制(fork)的程序数,此信息是从 /proc/stat 中的 processes 字段中取得的。

-s:将从启动到目前为止,由一些事件导致的内存变化情况列表说明。

-S 单位令输出的数据显示单位,例如用 K/M 取代 bytes 的容量。
-d列出硬盘有关读写总量的统计表。
-p 分区设备文件名查看硬盘分区的读写情况。
字段含义
procs

进程信息字段:

-r:等待运行的进程数,数量越大,系统越繁忙。

-b:不可被唤醒的进程数量,数量越大,系统越繁忙。

memory

内存信息字段:

-swpd:虚拟内存的使用情况,单位为 KB。

-free:空闲的内存容量,单位为 KB。

-buff:缓冲的内存容量,单位为 KB。

-cache:缓存的内存容量,单位为 KB。

swap

交换分区信息字段:

-si:从磁盘中交换到内存中数据的数量,单位为 KB。

-so:从内存中交换到磁盘中数据的数量,单位为 KB。

这两个数越大,表明数据需要经常在磁盘和内存之间进行交换,系统性能越差。

io

磁盘读/写信息字段:

-bi:从块设备中读入的数据的总量,单位是块。

-bo:写到块设备的数据的总量,单位是块。

这两个数越大,代表系统的 I/O 越繁忙。

system

系统信息字段:

-in:每秒被中断的进程次数。

-cs:每秒进行的事件切换次数。

这两个数越大,代表系统与接口设备的通信越繁忙。

cpu

CPU信息字段:

-us:非内核进程消耗 CPU 运算时间的百分比。

-sy:内核进程消耗 CPU 运算时间的百分比。

-id:空闲 CPU 的百分比。

-wa:等待 I/O 所消耗的 CPU 百分比。

-st:被虚拟机所盗用的 CPU 百分比

 2.2.2 iostat——查看每个磁盘的IO性能

命令格式:

iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]

常用选项:

-c 只显示CPU行
-d 显示设备〈磁盘)使用状态
-k 以千字节为为单位显示输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标

2.2.3 iftop——动态查看网络流量

2.3 控制进程命令

2.3.1 启动程序

  • 前台启动:通过终端启动,且启动后一直占据终端
     
  • 后台启动:可通过终端启动,但启动后即转入后台运行(释放终端)

2.3.2 调整前台程序命令

  1. 将未启动的前台命令运行于后台​​​​​​​​​​​​​​
     
    command &    #在前台命令后加上&
  2. 将已经运行的前台命令停止并挂在后台
    ping 127.0.0.1    #运行前台命令
    
        ...
        ...
        ...
    
    ctrl+z    #在运行时,按ctrl+z

2.3.3 管理后台任务命令

  1. jobs——查看后台任务列表
    jobs
    
  2. fg——调出后台任务
    fg [序号]
  3. bg——继续后台任务
    bg [序号]

2.3.4 结束进程

kill [信号] PID

注意:kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。Linux 定义了几十种不同类型的信号,读者可以使用 kill -l 命令查看所有信号及其编号,这里仅列出几个常用的信号。

信号编号信号名含义
0EXIT程序退出时收到该信息。
1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3QUIT退出。
9KILL杀死进程,即强制结束进程。
11SEGV段错误。
15TERM正常结束进程,是 kill 命令的默认信号。

三、计划任务 

3.1 at——一次性任务

at [选项] [时间]([HH:MM]、[yyyy-mm-dd])

at 15:00 2024-04-17
at> cmd     #编写命令
            #ctrl+d提交


atq    
9 2013-07-26 02:00 a root
#说明root用户有一个at任务在2013年7月26日02:00执行,工作号是9
格式用法
HH:MM比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。
Midnight(midnight)代表 12:00 AM(也就是 00:00)。
Noon(noon)代表 12:00 PM(相当于 12:00)。
Teatime(teatime)下午茶代表 4:00 PM(相当于 16:00)。
英文月名 日期 年份比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。
MMDDYY、MM/DD/YY、MM.DD.YY比如 011518 表示 2018 年 1 月 15 号。
now+时间以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行。

3.2 crontab——周期计划

crontab    [项目]    [file]
选项功能
-u user用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行。
-e编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i在删除用户的 crontab 文件时,给确认提示。

crontab -e        #进入crontab编辑界面,退出和vim编辑器一样

* * * * *     需要执行任务的命令

项目含义范围
第一个"*"一小时当中的第几分钟(minute)0~59
第二个"*"一天当中的第几小时(hour)0~23
第三个"*"一个月当中的第几天(day)1~31
第四个"*"一年当中的第几个月(month)1~12
第五个"*"一周当中的星期几(week)0~7(0和7都代表星期日)

在规定时间时,有几种特殊用法: 

特殊符号含义
*(星号)代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。
,(逗号)代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠)代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线)代表每隔多久执行一次。比如"*/10命令",代表每隔 10 分钟就执行一次命令。

在书写 crontab 定时任务时,需要注意以下几个事项:

  1. 5个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间
  2. crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。
  3. 在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。
  4. 在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。

使用演示:

1. 查看/etc/crontab文件来查看配置信息,且编写执行命令

PATH表示编写命令时,可以使用哪些相对路径下的命令,若命令不在PATH中需要输入绝对路径。


2. 编写完后,查看crontab中的执行任务,并且观察是否执行成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/557820.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java核心类

一,String字符串 1.1,String字符串是引用类型,且不可变 String str1 "Hello";String str2 str1.concat(" World"); // 使用concat方法连接字符串&#xff0c;返回一个新的字符串对象System.out.println(str1); // 输出&#xff1a;Hello&#xff0c;原始…

[大模型]InternLM2-7B-chat langchain 接入

InternLM2-7B-chat langchain 接入 InternLM2 &#xff0c;即书生浦语大模型第二代&#xff0c;开源了面向实用场景的70亿参数基础模型与对话模型 &#xff08;InternLM2-Chat-7B&#xff09;。模型具有以下特点&#xff1a; 有效支持20万字超长上下文&#xff1a;模型在20万…

Hadoop3:大数据的基本介绍

一、什么是大数据 1、大数据的4v特点 Volume&#xff08;大量&#xff09; Velocity&#xff08;高速&#xff09; Variety&#xff08;多样&#xff09; Value&#xff08;低价值密度&#xff09; 2、大数据部门间的工作岗位 第三部分&#xff0c;其实就是JavaWeb 二、…

使用TomCat写Film前后端项目04.14

使用TomCat写Film前后端项目源文件0414-CSDN博客 实现功能&#xff1a; 得到数据库所有电影数据在首页显示出来 添加 删除 修改 点击修改&#xff0c;获取编号id&#xff0c;传入到根据id编号查询数据的控制器转发数据到 修改的jsp页面。 获取修改数据传入到根据id修改数据的控…

2024 CKA | 基础操作教程(十五)

题目内容 设置配置环境&#xff1a; [candidatenode-1] $ kubectl config use-context xk8s Task 您必须从 master01 主机执行所需的 etcdctl 命令。 首先&#xff0c;为运行在 https://127.0.0.1:2379 上的现有 etcd 实例创建快照并将快照保存到 /var/lib/backup/etcd-sn…

【QT进阶】Qt Web混合编程之CMake VS2019编译并使用QCefView(图文并茂超详细版本)

往期回顾 【QT进阶】Qt Web混合编程之CEF、QCefView简单介绍-CSDN博客 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用&#xff08;图文并茂超详细介绍&#xff09;-CSDN博客【QT进阶】Qt Web混合编程之QWebEngineView基本用法-CSDN博客【QT进阶】Qt Web混合编程之VS2019 C…

【C语言——动态内存管理】

一.为什么要有动态内存分配 通过前面的学习我们已经掌握了使用变量和数组来进行内存的开辟。 上面所说的这两种内存的开辟方式有两个特点&#xff1a; 空间开辟的大小是固定的。数组在生命的时候&#xff0c;必须指定数组的长度&#xff0c;数组空间一旦确定了大小就不能再调整…

逆滤波器的推导与实现

设滤波器为&#xff0c;逆滤波器为 根据滤波器和逆滤波器的定义 对上式做傅里叶变换 对上式做逆傅里叶变换可得&#xff0c; 好了&#xff0c;逆滤波器的公式推导完了&#xff0c;但是实际计算时大多数时候这样是算不出来的&#xff0c;除非像扫频或粉噪这样的全频带信号才行&…

C盘越用越大?教你如何科学管理C盘空间

前言&#xff1a; 如图&#xff0c;左边是我多开的E5电脑&#xff0c;装的是LTSC2019_210707F多开封装版&#xff0c;C盘占用8.5GB&#xff0c;右边是我平常打游戏写代码的电脑&#xff0c;装的是Win11 22H2&#xff0c;C盘占用30GB。两台电脑都关闭了休眠&#xff0c;C盘的虚拟…

logisim 图解超前进位加法器原理解释

鄙人是视频作者&#xff0c;文件在视频简介的网盘链接。 找规律图解超前进位加法器与原理解释_哔哩哔哩_bilibili 一句话就是“把能导致进位到这个位置的情况全都穷举一遍。” 穷举情况看图中算式。 视频讲解比较啰嗦。

LLM padding left or right

参考博客&#xff1a; 大部分的大模型(LLM)采用左填充(left-padding)的原因 注&#xff1a;文章主要内容参考以上博客&#xff0c;及其评论区&#xff0c;如有侵权&#xff0c;联系删除。 最近在看大模型相关内容的时候&#xff0c;突然想到我实习时候一直一知半解的问题&…

经典网络解读—IResNet

论文&#xff1a;Improved Residual Networks for Image and Video Recognition&#xff08;2020.4&#xff09; 作者&#xff1a;Ionut Cosmin Duta, Li Liu, Fan Zhu, Ling Shao 链接&#xff1a;https://arxiv.org/abs/2004.04989 代码&#xff1a;https://github.com/iduta…

Ubuntu22.04.4 - 网络配置 - 笔记

一、设置固定ip 1、cd /etc/netplan 查看文件夹下的配置文件 我这里叫 00-installer-config.yaml 2、sudo nano /etc/netplan/00-installer-config.yaml 完成配置后&#xff0c;按下Ctrl O保存更改&#xff0c;然后按下Ctrl X退出nano编辑器。 3、sudo netplan apply 4、ip …

C++ 继承(一)

一、继承的概念 继承是面向对象编程中的一个重要概念&#xff0c;它指的是一个类&#xff08;子类&#xff09;可以从另一个类&#xff08;父类&#xff09;继承属性和方法。子类继承父类的属性和方法后&#xff0c;可以直接使用这些属性和方法&#xff0c;同时也可以在子类中…

springboot+vue全栈开发【2.前端准备工作篇】

目录 前言准备工作Vue框架介绍MVVM模式 快速入门导入vue在vscode创建一个页面 前言 hi&#xff0c;这个系列是我自学开发的笔记&#xff0c;适合具有一定编程基础&#xff08;html、css那些基础知识要会&#xff01;&#xff09;的同学&#xff0c;有问题及时指正&#xff01;…

语雀如何显示 Markdown 语法

正常的文章链接 https://www.yuque.com/TesterRoad/t554s28/eds3pfeffefw12x94wu8rwer8o 访问后是文章&#xff0c;无法复制 markdown 的内容 在链接后增加参数 /markdown?plaintrue&linebreakfalse&anchorfalse 直接显示代码

ros2 RVIZ2 不显示urdf模型

ros2 RVIZ2 不显示urdf模型 我的情况是 &#xff1a; 没有如何报错但是不显示 Description Topic 手动写上 /robot_description

python使用tkinter和ttkbootstrap制作UI界面(二)

这次讲解UI界面常用的主键&#xff0c;延续上文的框架进行编写&#xff0c;原界面如下&#xff1a; Combobox组件应用&#xff08;下拉框&#xff09; """Combobox组件"""global comvalue_operatorcomvalue_operator tk.StringVar()value_ope…

就业班 第三阶段(nginx) 2401--4.19 day3 nginx3

二、企业 keepalived 高可用项目实战 1、Keepalived VRRP 介绍 keepalived是什么keepalived是集群管理中保证集群高可用的一个服务软件&#xff0c;用来防止单点故障。 ​ keepalived工作原理keepalived是以VRRP协议为实现基础的&#xff0c;VRRP全称Virtual Router Redundan…

黑马python-python基础语法

1.注释&#xff1a; 单行注释&#xff1a;#注释内容 多行注释&#xff1a; """ 第一行 第二行 第三行 """ 或 第一行 第二行 第三行 2.定义变量 变量名值 变量名满足标识符命名规则即可 3.标识符命名规则&#xff1a; 有数组、字母、下划线组成…