Linux 信号(Signal)详解
信号(Signal)是 Linux 系统中用于进程间通信的一种机制。它是一种异步通知,用于通知进程发生了某个事件。信号可以来自内核、其他进程或进程自身。
信号的基本概念
-
信号的作用:
-
通知进程发生了某个事件(如用户按下
Ctrl+C
、子进程终止等)。 -
用于进程间通信或进程控制。
-
-
信号的特性:
-
异步:信号可以在任何时候发送给进程。
-
简单:信号只能传递一个编号,不能携带额外数据。
-
-
信号的来源:
-
硬件异常(如除零错误、段错误)。
-
用户输入(如
Ctrl+C
发送SIGINT
)。 -
其他进程(如
kill
命令发送信号)。 -
内核(如子进程终止时发送
SIGCHLD
)
-
常见信号列表
Linux 系统定义了多种信号,以下是一些常见的信号:
信号编号 | 信号名称 | 默认行为 | 说明 |
---|---|---|---|
1 | SIGHUP | 终止进程 | 终端挂起或控制进程终止。 |
2 | SIGINT | 终止进程 | 用户按下 Ctrl+C 。 |
3 | SIGQUIT | 终止并生成核心转储 | 用户按下 Ctrl+\ 。 |
9 | SIGKILL | 强制终止进程 | 无法被捕获、阻塞或忽略。 |
15 | SIGTERM | 终止进程 | 请求进程正常退出。 |
17 | SIGCHLD | 忽略 | 子进程状态改变(终止或停止)。 |
19 | SIGSTOP | 停止进程 | 强制暂停进程,无法被捕获、阻塞或忽略。 |
20 | SIGTSTP | 停止进程 | 用户按下 Ctrl+Z 。 |
kill -l
命令
kill -l
:若不加 <信息编号>
选项,则 -l
参数会列出全部的信号名称。
[root@localhost lizuowen_nginx]# kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
信号的处理方式
进程可以以下列三种方式处理信号:
-
默认行为:
-
每个信号都有一个默认行为,如终止进程、忽略信号、停止进程等。
-
-
忽略信号:
-
进程可以选择忽略某些信号(
SIGKILL
和SIGSTOP
除外)。
-
-
捕获信号:
-
进程可以注册信号处理函数,在信号发生时执行自定义逻辑。
-
信号详解
1信号 - SIGHUP
本信号在用户终端连接(正常或非正常)结束时发出,通常是在终端的控制进程结束时,通知同一session内的各个作业,这时它们与控制终端不再关联。
nginx -s reload
- 信号: SIGHUP
- 作用: 重新加载配置文件。该命令会发送 SIGHUP 信号给 Nginx 主进程,Nginx 会重新加载配置文件并启动新的工作进程,同时优雅地关闭旧的工作进程。
nohup命令
nohup
英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。默认情况下,会输出一个名叫 nohup.out
的文件到当前目录下。
实例:
nohup /root/runoob.sh &
2信号 - SIGINT
程序终止(interrupt)信号,在用户键入 INTR
字符(通常是 Ctrl-C
)时发出,用于通知前台进程组终止进程。
3信号 - SIGQUIT
和 SIGINT
类似,但由 QUIT
字符(通常是 Ctrl-\
)来控制。
当进程收到 SIGQUIT 信号时,通常会生成一个核心转储文件(core dump),并终止进程。核心转储文件记录了进程在崩溃时的内存状态,可用于调试。1. SIGQUIT 信号
SIGQUIT 是一个用户触发的信号,通常通过按下 Ctrl+\(Control + 反斜杠)发送。它与 SIGINT(Ctrl+C)不同,SIGQUIT 不仅终止进程,还会生成核心转储文件。2. 核心转储文件
核心转储文件是进程内存的镜像,包含崩溃时的寄存器状态、堆栈、堆等信息,帮助开发者分析问题。3. 生成核心转储的条件
权限:进程的工作目录必须有写权限。资源限制:ulimit -c 设置的核心文件大小限制需足够大。文件系统:有足够的磁盘空间。4. 配置核心转储
设置核心文件大小:
ulimit -c unlimited指定核心文件路径:
通过 /proc/sys/kernel/core_pattern 配置:
echo "/tmp/core-%e-%p-%t" > /proc/sys/kernel/core_pattern其中:
%e:可执行文件名
%p:进程ID
%t:时间戳5. 调试核心转储
使用 gdb 调试核心文件:
gdb <可执行文件> <核心文件>
在 gdb 中,使用 bt 命令查看堆栈跟踪,定位问题。# core.337829文件保存在/app/deploy/
kill -6 pid
#分析core文件
./jmap -dump:format=b,file=heap.bin /app/jdk/jdk1.8.0_172/bin/java /app/deploy/core.3378296. 示例
假设程序 my_program 收到 SIGQUIT 后生成核心文件:
$ ./my_program
^\Quit (core dumped)
$ ls
core-my_program-12345-1625070000
$ gdb ./my_program core-my_program-12345-1625070000
(gdb) bt
#0 0x00007f8e1b1c5f25 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007f8e1b1a797d in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x000055d5c3b2b1a9 in main () at my_program.c:10
7. 总结
SIGQUIT 信号用于终止进程并生成核心转储文件,帮助开发者调试问题。通过合理配置,可以更好地利用核心转储进行故障排查。
nginx -s quit
-
信号: SIGQUIT
-
作用: 优雅地停止 Nginx 服务。该命令会发送 SIGQUIT 信号给 Nginx 主进程,Nginx 会等待所有正在处理的请求完成后,再终止工作进程并退出
15信号 - SIGTERM
程序结束(terminate)信号,与 SIGKILL
不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令 kill
缺省产生这个信号。如果进程终止不了,才会尝试 SIGKILL
。
nginx -s stop
- 信号: SIGTERM
- 作用: 立即停止 Nginx 服务。该命令会发送 SIGTERM 信号给 Nginx 主进程,Nginx 会立即终止所有工作进程并退出。
拦截信号 ——trap
命令
trap
命令允许指定shell脚本要监视并拦截的Linux信号。-9
信号不能被拦截。
格式:
trap commands signals
实例:
[root@localhost lizuowen_nginx]# cat trap.sh
trap "echo i am busy" 15 3 2 1 9
i=1
while :
doecho $i((i++))sleep 1
done
脚本运行过程中在另一个伪终端执行的命令:
[root@localhost lizuowen_nginx]# ps -ef | grep trap.sh
root 17163 8575 0 15:43 pts/1 00:00:00 bash trap.sh
root 17361 17322 0 15:46 pts/0 00:00:00 grep --color=auto trap.sh
[root@localhost lizuowen_nginx]# kill -1 17163
[root@localhost lizuowen_nginx]# kill -2 17163
[root@localhost lizuowen_nginx]# kill -9 17163
运行结果:
196
197
i am busy
198
199
200
201
202
203
204
205
206
207
208
Killed
相关文章:
Linux 信号(Signal)详解
信号(Signal)是 Linux 系统中用于进程间通信的一种机制。它是一种异步通知,用于通知进程发生了某个事件。信号可以来自内核、其他进程或进程自身。 信号的基本概念 信号的作用: 通知进程发生了某个事件(如用户按下 Ct…...
【数据分享】1929-2024年全球站点的逐年最低气温数据(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标!说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站点…...
app版本控制java后端接口版本管理
java api version 版本控制 java接口版本管理 1 自定义 AppVersionHandleMapping 自定义AppVersionHandleMapping实现RequestMappingHandlerMapping里面的方法 public class AppVersionHandleMapping extends RequestMappingHandlerMapping {Overrideprotected RequestCondit…...
2024年度总结-CSDN
2024年CSDN年度总结 Author:OnceDay Date:2025年1月21日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 文章目录 2024年CSDN年度总结1. 整体回顾2…...
基于python的博客系统设计与实现
摘要:目前,对于信息的获取是十分的重要,我们要做到的不是裹足不前,而是应该主动获取和共享给所有人。博客系统就能够实现信息获取与分享的功能,博主在发表文章后,互联网上的其他用户便可以看到,…...
服务器日志自动上传到阿里云OSS备份
背景 公司服务器磁盘空间有限,只能存近15天日志,但是有时需要查看几个月前的日志,需要将服务器日志定时备份到某个地方,需要查询的时候有地方可查。 针对这个问题,想到3个解决方法: 1、买一个配置比较低…...
优化使用 Flask 构建视频转 GIF 工具
优化使用 Flask 构建视频转 GIF 工具 优化后的项目概述 在优化后的版本中,我们将实现以下功能: 可设置每个 GIF 的帧率和大小:用户可以选择 GIF 的帧率和输出大小。改进的用户界面:使用更现代的设计使界面更美观、整洁。自定义…...
leetcode:511. 游戏玩法分析 I
难度:简单 SQL Schema > Pandas Schema > 活动表 Activity: ----------------------- | Column Name | Type | ----------------------- | player_id | int | | device_id | int | | event_date | date | | games_playe…...
windows git bash 使用zsh 并集成 oh my zsh
参考了 这篇文章 进行配置,记录了自己的踩坑过程,并增加了 zsh-autosuggestions 插件的集成。 主要步骤: 1. git bash 这个就不说了,自己去网上下,windows 使用git时候 命令行基本都有它。 主要也是用它不方便&…...
【Python运维】Python与网络监控:如何编写网络探测与流量分析工具
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着互联网技术的快速发展,网络性能的监控与分析成为保障信息系统稳定运行的关键环节。本文深入探讨了如何利用Python语言构建高效的网络探…...
OpenCV相机标定与3D重建(61)处理未校准的立体图像对函数stereoRectifyUncalibrated()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 为未校准的立体相机计算一个校正变换。 cv::stereoRectifyUncalibrated 是 OpenCV 库中的一个函数,用于处理未校准的立体图像对。该函…...
字玩FontPlayer开发笔记12 Vue3撤销重做功能
字玩FontPlayer开发笔记12 Vue3撤销重做功能 字玩FontPlayer是笔者开源的一款字体设计工具,使用Vue3 ElementUI开发,源代码:github | gitee 笔记 撤销重做功能是设计工具必不可少的模块,以前尝试使用成熟的库实现撤销重做功能…...
无人机图传模块:深入理解其工作原理与实际效用
无人机图传模块作为无人机系统的关键组成部分,承担着将无人机拍摄的图像和视频实时传输至地面控制站或接收设备的重任。本文将深入探讨无人机图传模块的工作原理及其在实际应用中的效用,帮助读者更好地理解这一技术的奥秘。 一、无人机图传模块的工作原…...
PDF文件提取开源工具调研总结
概述 PDF是一种日常工作中广泛使用的跨平台文档格式,常常包含丰富的内容:包括文本、图表、表格、公式、图像。在现代信息处理工作流中发挥了重要的作用,尤其是RAG项目中,通过将非结构化数据转化为结构化和可访问的信息࿰…...
Linux(Centos 7.6)命令详解:dos2unix
1.命令作用 将Windows格式文件件转换为Unix、Linux格式的文件(也可以转换成其他格式的) 2.命令语法 Usage: dos2unix [options] [file ...] [-n infile outfile ...] 3.参数详解 options: -c, --convmode,转换方式,支持ascii, 7bit, iso, mac,默认…...
梯度提升决策树树(GBDT)公式推导
### 逻辑回归的损失函数 逻辑回归模型用于分类问题,其输出是一个概率值。对于二分类问题,逻辑回归模型的输出可以表示为: \[ P(y 1 | x) \frac{1}{1 e^{-F(x)}} \] 其中 \( F(x) \) 是一个线性组合函数,通常表示为ÿ…...
跨域问题分析及解决方案
1、跨域 指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。 2、同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域; 3、跨域流程…...
【三国游戏——贪心、排序】
题目 代码 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e510; int a[N], b[N], c[N]; int w[4][N]; int main() {int n;cin >> n;for(int i 1; i < n; i)cin >> a[i];for(int i 1; i < n; i)cin >> b[i…...
深入理解 Java 的数据类型与运算符
Java学习资料 Java学习资料 Java学习资料 在 Java 编程中,数据类型与运算符是构建程序的基础元素。它们决定了数据在程序中的存储方式以及如何对数据进行各种操作。 一、数据类型 (一)基本数据类型 整型: 用于存储整数数值&…...
WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测
WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测 目录 WOA-CNN-GRU-Attention、CNN-GRU-Attention、WOA-CNN-GRU、CNN-GRU四模型对比多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于WOA-CNN-GRU-Attention、…...
(二叉树)
我们今天就开始引进一个新的数据结构了:我们所熟知的:二叉树; 但是我们在引进二叉树之前我们先了解一下树; 树 树的概念和结构: 树是⼀种⾮线性的数据结构,它是由 n ( n>0 ) …...
Linux shell 批量验证端口连通性
脚本 #!/bin/bash # #database check #set -o nounset LOCALIPifconfig | grep inet | head -1 | awk {print $2} | sed s/addr\:// IPLIST192.168.1.99 192.168.1.98 192.168.1.97 PORTLIST81 82 83 84 85 86 check_nc(){ for CHECK_IP in $IPLIST dofor CHECK_PORT in $PORT…...
Java 中实体类与操作类分离
目录 一、为啥要把实体类和操作类分开 二、实体类长啥样,怎么用 三、操作类的使命与实现 四、实战演练:实体类与操作类协同工作 五、拓展思考:这种分离带来的好处与进一步优化 六、总结与展望 家人们,今天我想跟你们唠唠我在…...
创建 pdf 合同模板
创建 pdf 合同模板 一、前言二、模板展示三、制作过程 一、前言 前段时间要求创建“pdf”模板,学会了后感觉虽然简单,但开始也折腾了好久,这里做个记录。 二、模板展示 要创建这样的模板 三、制作过程 新建一个“Word”,这里命…...
【Prometheus】PromQL进阶用法
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
BOBO小火炬全套源码XE修复版2025(火炬天花板二次开发版)
《小火炬全套源码 传奇游戏源码讲解》 小火炬全套源码是一种用于开发经典传奇类游戏的源码包。传奇游戏作为一款经典的多人在线角色扮演游戏(MMORPG),有着庞大的用户基础和强大的游戏生态。小火炬全套源码主要提供了从基础架构到核心功能的完…...
【基于无线电的数据通信链】Link 11 仿真测试
〇、废话 Link 11 仿真测试 涉及多个方面,包括信号仿真、协议模拟、数据链路层的仿真以及网络性能评估等。Link 11 是一种基于 HF(高频) 或 UHF(超高频) 波段的无线通信协议,主要用于军事通信系统中。为了…...
WPF实战案例 | C# WPF实现计算器源码
WPF实战案例 | C# WPF实现计算器源码 一、设计来源计算器应用程序讲解1.1 主界面1.2 计算界面 二、效果和源码2.1 界面设计(XAML)2.2 代码逻辑(C#)2.3 实现步骤总结 源码下载更多优质源码分享 作者:xcLeigh 文章地址&a…...
WebSocket 和 Socket 的区别
一、协议层次和工作方式 1.1 )Socket 1.1.1)Socket位于传输层,通常使用TCP或UDP协议 1.1.2)提供了一个通用的网络编程接口,允许应用程序通过它发送和接收数据 1.1.3)一般需要手动管理连接,错…...
Matlab自学笔记四十五:日期时间型和字符、字符串以及double型的相互转换方法
1.说明 在Matlab中,大多数函数都有这样的功能:创建函数本身具有转换的功能,例如double函数,可以创建双精度浮点数,也可以把输入参数转换成双精度浮点数,再例如string,可以创建字符串࿰…...
Python基础学习(六)unittest 框架
1.介绍 是 Python自带的单元测试框架 - 自带的, 可以直接使用, 不需要单外安装 - 测试人员,用来做自动化测试, 作为自动化测试的执行框架,即管理和执行用例的 核心要素: TestCase 测试用例, 这个测试用例是 unittest 的组成部分,作用是用来书写真正的…...
Python数据可视化(够用版):懂基础 + 专业的图表抛给Tableau等专业绘图工具
我先说说文章标题中的“够用版”啥意思,为什么这么写。 按照我个人观点,在使用Python进行数据分析时,我们有时候肯定要结合到图表去进行分析,去直观展现数据的规律和特定,那么我们肯定要做一些简单的可视化࿰…...
麒麟操作系统服务架构保姆级教程(十三)tomcat环境安装以及LNMT架构
如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 之前咱们学习了LNMP架构,但是PHP对于技术来说确实是老掉牙了,PHP的市场占有量越来越少了,我认识一个10年的PHP开发工程师,十年工资从15k到今天的6k&am…...
Docker集成onlyoffice实现预览功能
1.拉取镜像 docker pull onlyoffice/documentserver 2. 数据卷挂载 mkdir -p app/onlyoffice/DocumentServer/logs mkdir -p app/onlyoffice/DocumentServer/data mkdir -p app/onlyoffice/DocumentServer/lib mkdir -p app/onlyoffice/DocumentServer/db 3.运行容器 docker ru…...
Flowable 管理各业务流程:流程设计器 (获取流程模型 XML)、流程部署、启动流程、流程审批、流程挂起和激活、任务分配
文章目录 引言I 表结构主要表前缀及其用途核心表II 流程设计器(Flowable BPMN模型编辑器插件)Flowable-UIvue插件III 流程部署部署步骤例子:根据流程模型ID部署IV 启动流程启动步骤ACT_RE_PROCDEF:流程定义相关信息例子:根据流程 ID 启动流程V 流程审批审批步骤Flowable 审…...
BladeDISC++:Dynamic Shape AI 编译器下的显存优化技术
近年来,随着深度学习技术的迅猛发展,越来越多的模型展现出动态特性,这引发了对动态形状深度学习编译器(Dynamic Shape AI Compiler)的广泛关注。本文将介绍阿里云 PAI 团队近期发布的 BladeDISC项目,探讨在动态场景下如何优化深度…...
FFmpeg常用命令
文章目录 一、 FFmpeg 音视频的处理流程二、FFmpeg 常用命令2.1、查看本机支持的采集设备2.2、 录制视频2.2.1、原始视频2.2.2、编码的视频 2.3、录制音频:2.3.1、原始音频2.3.2、编码的音频 2.4、录制音视频:2.5、文件格式转换:2.6、提取音频…...
http请求开启长连接导致请求偶发失败
问题描述: http长连接的意思是服务器为了调用时减少TCP三次握手开销,会复用之前已经发起的请求,比较适合频繁交互(比如数据推送、流水线操作等)的场景,但是如果超过服务器配置的连接最大空闲时间࿰…...
JUnit单元测试
单元测试 就是针对最小的功能单元(方法),编写测试代码对其正确性进行测试 JUnit 最流行的java测试框架之一,方柏霓进行单元测试 入门程序 使用Junit,对UserService的方法进行单元测试 1.在pom.xml中,…...
智慧公安(实景三维公安基层基础平台)建设方案——第4章
4 建设内容 4.1 标准规范体系 在国家和地方公安基层信息化标准规范的基础上,结合项目实际情况,制定标准规范及管理制度,构建统一的标准规范体系,以便更好地实现公安基层基础信息的高度共享、平台运行的统一协调、业务流程最优化。主要包括以下内容: 1. 业务标准规范 (…...
LLMs(大型语言模型)的多智能体:Auto-GPT
LLMs(大型语言模型)的多智能体:Auto-GPT 是指在一个系统中集成多个具有不同能力、角色和任务的智能体,这些智能体能够相互协作、沟通和交互,以共同完成复杂的任务或解决复杂的问题。每个智能体都可以被视为一个独立的实体,具有自己的策略、目标和知识库,通过相互之间的…...
《Effective Java》学习笔记——第2部分 对象通用方法最佳实践
文章目录 第2部分 所有对象通用方法一、前言二、最佳实践内容1. equals()方法2. hashCode()方法3. toString() 方法4. clone() 方法5. finalize() 方法6. compareTo()方法(实现 Comparable 接口) 三、小结 第2部分 所有对象通用方法 一、前言 《Effect…...
2024年智慧消防一体化安全管控年度回顾与2025年预测
随着科技的飞速发展,智慧营区一体化安全管控在2024年取得了显著进展,同时也为2025年的发展奠定了坚实基础。 2024年年度回顾 政策支持力度持续加大:国家对消防安全的重视程度不断提高,出台了一系列涵盖技术创新、市场应用、人才培…...
艺术家迟首飞在特殊历史时刻展现中国艺术力量
艺术家迟首飞在特殊历史时刻展现中国艺术力量 艺术创作的边界正被不断拓展。中国艺术家迟首飞以其纪实视野,将传统与现代元素巧妙融合,展现全球艺坛力量,创作出一系列精彩作品。尤其是《平安兔》《福》与TikTok标志的结合的作品,…...
探索微服务架构:从单体应用到微服务的转变
引言 随着互联网业务的日益复杂和用户需求的快速增长,软件开发的架构模式也在不断演进。从最早的单体应用架构到后来的分层架构,再到如今备受关注的微服务架构,每一种架构模式都试图解决软件开发中的不同挑战。尤其是在现代互联网企业中&…...
MongoDB vs Redis:相似与区别
前言 在当今的数据库领域,MongoDB 和 Redis 都是备受关注的非关系型数据库(NoSQL),它们各自具有独特的优势和适用场景。本文将深入探讨 MongoDB 和 Redis 的特点,并详细对比它们之间的相似之处和区别,帮助…...
Jenkins-pipeline语法说明
一. 简述: Jenkins Pipeline 是一种持续集成和持续交付(CI/CD)工具,它允许用户通过代码定义构建、测试和部署流程。 二. 关于jenkinsfile: 1. Sections部分: Pipeline里的Sections通常包含一个或多个Direc…...
MySQL(3)运算符、排序与分页
运算符 一、算术运算符 加减乘除余 举例: SELECT 1001 FROM DUAL; 结果为101,与java中的连接字符串不同。 SELECT 100A FROM DUAL; 结果为100。 也可以理解为,遇到非数值类型时,先转换为数值类型(如2可以转换…...
Kafka面试题----Kafka消息是采用Pull模式,还是Push模式
Pull 模式为主 消费者主动拉取:Kafka 中的消费者是基于 Pull 模式来获取消息的。消费者通过向 Kafka 集群发送拉取请求,主动地从 Broker 中获取消息。这种方式使得消费者可以根据自身的消费能力和处理速度来灵活地控制消息的拉取频率和数量,…...
BLE透传方案,IoT短距无线通信的“中坚力量”
在物联网(IoT)短距无线通信生态系统中,低功耗蓝牙(BLE)数据透传是一种无需任何网络或基础设施即可完成双向通信的技术。其主要通过简单操作串口的方式进行无线数据传输,最高能满足2Mbps的数据传输速率&…...