当前位置: 首页 > news >正文

linux shell操作 - 04 进程间通信

文章目录

  • Signal 信号
    • 信号定义
    • 信号的生命周期
    • 信号分类
    • linux进程通信案例

Signal 信号

信号定义

  1. Linux信号是进程间通信的一种方式,通过向目标进程发送一个特定的信号,让其执行相应的处理操作;

  2. 向目标进程发送信号时,内核会将信号添加到目标进程的信号队列中,且每个进程都有一个信号表来表示该进程对不同信号的处理情况。

信号的生命周期

Linux信号生命周期是指信号的产生、传递、处理和终止的整个过程。

  • 信号的产生可以由多种事件触发,当一个事件发生时,内核会为每个进程确定一个目标信号,并将其发送给相应的进程。

  • 信号传递是指信号从一个进程传递到另一个进程中。在传递过程中,信号可以被阻塞或者被忽略、信号处理函数进行处理。

  • 信号处理是指目标进程对信号的响应行为。比如终止进程、忽略信号、自定义信号处理函数来处理信号。

  • 信号的终止是指信号处理函数执行完成,进程恢复到正常执行状态。

信号分类

  • Linux一共64种信号,每一个信号都有唯一整数值;又可以分为两类:可靠、不可靠;

  • 不可靠信号又称非实时信号,是指在信号传递过程中可能丢失或产生不可预测行为的信号,1-31号信号为不可靠信号。

  • 可靠信号又称实时信号,是保证传递和处理的信号。当一个进程接收到可靠信号时,系统会确保该信号不会丢失,并且会等待进程处理完该信号后再继续执行其他操作,Linux使用队列来保存待处理的信号,保证它们按照接收的顺序被进程处理。34-64号信号为可靠信号。

  • 执行kill -l 可以查看所有的信号;

  • 执行信号的处理动作称为信号递达(Delivery);
    信号从产生到递达之间的状态,称为信号未决(Pending);
    信号阻塞,被阻塞的信号将保持在未决状态;

linux进程通信案例

  1. 编写shell 脚本proc1.sh,使用trap注册handler函数与一个信号;然后执行proc1.sh 并进入事件循环。
  2. 编写shell脚本proc2.sh,使用kill -s SIGINT pid 向proc1.sh进程发送注册的信号,查看proc1.sh中handler函数是否执行。
在这里插入代码片

相关文章:

linux shell操作 - 04 进程间通信

文章目录 Signal 信号信号定义信号的生命周期信号分类linux进程通信案例 Signal 信号 信号定义 Linux信号是进程间通信的一种方式,通过向目标进程发送一个特定的信号,让其执行相应的处理操作; 向目标进程发送信号时,内核会将信号…...

【Java并发】聊聊线程池原理以及实际应用

线程其实对于操作系统来说是宝贵的资源,java层面的线程其实本质还是依赖于操作系统内核的线程进行处理任务,如果频繁的创建、使用、销毁线程,那么势必会非常浪费资源以及性能不高,所以池化技术(数据库连接池、线程池&a…...

自然语言处理常用方法和评价指标

常用方法 文本分类:如情感分析、主题标签分类。使用方法如朴素贝叶斯、支持向量机、神经网络等。信息提取:从文本中提取结构化信息,如命名实体识别(NER)、关系提取。语义分析:理解文本的含义,包…...

FFmpeg常用命令行讲解及实战一

文章目录 前言一、学习资料参考二、FFmpeg 选项1、主要选项①、主要命令选项②、举例 2、视频选项①、主要命令选项②、举例1)提取固定帧2)禁止输出视频3)指定视频的纵横比 3、音频选项①、主要命令选项②、举例 4、字幕选项①、主要命令选项…...

Java的ArrayList中关于删除的常用操作及方法

目录 remove(int index)方法 remove(Object o)方法 removeAll​(Collection c)方法 removeIf​(Predicate filter)方法 removeRange​(int fromIndex, int toIndex)方法 remove(int index)方法 remove(int index)是ArrayList类中用于删除指定位置元素的方法。它接收一个整…...

低成本打造便携式无线网络攻防学习环境

1.摘要 一直以来, 无线网络安全问题与大众的个人隐私息息相关, 例如: 为了节省流量, 连接到一个看似安全的免费WiFi, 在使用过程中泄露自己的各类密码信息甚至银行卡账号密码信息。随着家用智能电器的普及, 家中的各类智能设备连入家里的无线网络, 却突然失灵, 甚至无法正常连…...

Qt|QLabel显示刷新图像数据

参考:QImage、QClipboard(https://zhuanlan.zhihu.com/p/649611141) 获取图像数据并转换为QImage unsigned char *data 图像数据; QImage show_image_ QImage(data, imgInfo.width, imgInfo.height, imgInfo.width, QImage::Format_Grays…...

Java类加载那些事

Java源文件(.java文件)被编译器编译后变为字节码形式的类文件(.class文件),Java类加载的过程就是JVM加载.class的二进制文件并且放到内存中,将数据放到方法区,并且在堆区构造一个java.lang.clas…...

QSplitter分裂器

QSplitter QSplitter 是 Qt 框架提供的一个小部件(widget),用于在用户界面中创建可拖动的分割窗口,允许用户调整子部件的大小和布局。它可以将父部件分割为多个可调整大小的子部件,使用户能够自定义界面的布局和大小。…...

pgsql 时区查看和修改

建议使用UTC时区,或者和linux、后端程序的时区保持一致,否则容易出现时间的差别。 pgsql的时间字段有一个带时区的timestamp with time zone,如果业务涉及多个时区,建议使用这个字段。 相关链接参考: linux时区设置和…...

el-table 表格表头、单元格、滚动条样式修改

.2023.11.21今天我学习了如何对el-table表格样式进行修改&#xff0c;如图&#xff1a; 运用的两个样式主要是 1.header-cell-class-name&#xff08;设置表头&#xff09; 2.class-name&#xff08;设置行单元格&#xff09; 代码如下&#xff1a; <el-table :data&quo…...

dockerDesktop使用方法

安装软件 装在C盘会容易满&#xff0c;可以装在D盘&#xff0c; "path\to\Docker Desktop Installer.exe" install -accept-license --installation-dirD:\Docker\Docker --wsl-default-data-rootD:\Docker\data并且在软件的设置的Docker Engine里添加阿里镜像源…...

[Ubuntu]RT810xE--网线已拔出--问题解决

0 环境 ubuntu 22.04.3 LTSDell Inspiron 15 5547windows/ubuntu 双系统 1 问题说明 Dell 笔记本安装的 Ubutun 系统&#xff0c;有线网络无法使用&#xff0c;一直显示 “网线已拔出”。 网上一查&#xff0c;才了解到主要原因&#xff1a;网卡驱动安装错误。系统默认安装…...

美国DDoS服务器:如何保护你的网站免遭攻击?

​  在当今数字化时代&#xff0c;互联网已经成为人们生活中不可或缺的一部分。随着互联网的普及和发展&#xff0c;网络安全问题也日益严重。其中&#xff0c;DDoS攻击是目前最常见和具有破坏性的网络攻击之一。那么&#xff0c;如何保护你的网站免遭DDoS攻击呢?下面将介绍…...

R语言数据缩放-1到1

目录 普通scale -1到1限定范围scale 普通scale R语言实战&#xff1a;scale&#xff08;&#xff09;函数 - 知乎 (zhihu.com) scale(x, center TRUE, scale TRUE) 过程&#xff1a; 对每个变量&#xff08;列&#xff09;计算平均值&#xff08;mean&#xff09;和标准…...

C语言第二十五弹--打印菱形

C语言打印菱形 思路&#xff1a;想要打印一个菱形&#xff0c;可以分为上下两部分&#xff0c;通过观察可以发现上半部分星号的规律是 1 3 5 7故理解为 2对应行数 1 &#xff0c;空格是4 3 2 1故理解为 行数-对应行数-1。 上半部分代码如下 for (int i 0;i < line;i){//上…...

PyTorch微调终极指南1:预训练模型调整

如今&#xff0c;在训练深度学习模型时&#xff0c;通过根据自己的数据微调预训练模型来进行迁移学习&#xff08;transfer learning&#xff09;已成为首选方法。 通过微调这些模型&#xff0c;我们可以利用他们的专业知识并使它们适应我们的特定任务&#xff0c;从而节省宝贵…...

Uptime Kuma 企业微信群机器人告警

curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa \-H Content-Type: application/json \-d {"msgtype": "text","text": {"content": "hello world"}}企业微信群机器人ke…...

【网络安全】-网络安全的分类详解

文章目录 介绍1. 网络层安全&#xff08;Network Layer Security&#xff09;理论实操使用VPN保护隐私 2. 应用层安全&#xff08;Application Layer Security&#xff09;理论实操使用密码管理器 3. 端点安全&#xff08;Endpoint Security&#xff09;理论实操定期更新防病毒…...

php利用ZipArchive类实现文件压缩与解压

github项目 1、Linux 安装zlib库 cd /usr/local/src wget https://zlib.net/current/zlib.tar.gz tar -zxvf zlib.tar.gz cd zlib-1.3 ./configure make && make install 2、zlib的使用 $all_name all.zip;// 创建ZipArchive对象$zip_all new ZipArchive();if ($z…...

应急响应实战:用Sysinternals AutoRuns揪出潜伏的恶意启动项(附VT扫描技巧)

应急响应实战&#xff1a;用Sysinternals AutoRuns揪出潜伏的恶意启动项&#xff08;附VT扫描技巧&#xff09; 在网络安全攻防对抗中&#xff0c;攻击者常通过持久化机制确保恶意代码在系统重启后仍能运行。作为应急响应工程师&#xff0c;我们需要像侦探一样系统性地排查每一…...

设计模式(C++)-行为型模式-策略模式

设计模式(C)-行为型模式-策略模式 一、策略模式概述 策略模式&#xff1a;是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;将每一个算法封装起来&#xff0c;并且使他们可以相互替换。策略模式让算法的变化独立于使用算法的客户端&#xff0c;使得算法可以在不…...

告别硬开关!用LLC谐振变换器实现ZVS/ZCS的保姆级原理拆解(附三种工作模式对比)

告别硬开关&#xff01;用LLC谐振变换器实现ZVS/ZCS的保姆级原理拆解&#xff08;附三种工作模式对比&#xff09; 在电源设计领域&#xff0c;工程师们永远在追求更高的效率和更小的体积。传统硬开关技术带来的开关损耗和EMI问题&#xff0c;已经成为制约电源模块性能提升的瓶…...

从SAR图像看海风:手把手教你用Bragg散射模型理解海面粗糙度与雷达回波

从SAR图像看海风&#xff1a;手把手教你用Bragg散射模型理解海面粗糙度与雷达回波 当Sentinel-1卫星的合成孔径雷达&#xff08;SAR&#xff09;扫过海面时&#xff0c;图像上那些明暗交错的纹理并非随机噪声&#xff0c;而是海风与波浪的"指纹"。本文将带您透过灰度…...

Proteus 8.13 新手避坑指南:用74LS00和74LS20搞定门电路仿真(附动态GIF教程)

Proteus 8.13 数字电路仿真实战&#xff1a;74LS系列芯片的深度应用与动态演示 第一次打开Proteus时&#xff0c;那个布满各种电子元件的界面可能会让你感到既兴奋又茫然。作为电子工程领域的标准仿真工具&#xff0c;Proteus能够将抽象的电路理论转化为可视化的交互体验&#…...

LED改造卤素台灯:节能高效技术解析

1. 卤素台灯LED改造的价值与背景传统卤素台灯作为办公和家居照明的常见选择&#xff0c;其核心问题在于能效低下。一颗50W的卤素灯泡实际光效仅为14-18流明/瓦&#xff0c;这意味着超过80%的电能转化成了无用的热能。我曾用红外测温仪实测过工作中的卤素灯泡表面温度——轻松突…...

阿里巴巴Qwen团队打造的“全感官“AI助手,究竟有多强?

这项由阿里巴巴Qwen团队开发的研究成果发表于2026年4月&#xff0c;论文编号为arXiv:2604.15804v1&#xff0c;有兴趣深入了解的读者可以通过该编号查询完整论文。人类感知世界的方式从来都不是单一的。当你和朋友聊天时&#xff0c;你同时在听他说话、看他的表情、理解文字信息…...

Godot资源解包终极指南:快速提取游戏资源的完整实践教程

Godot资源解包终极指南&#xff1a;快速提取游戏资源的完整实践教程 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 在Godot游戏开发与资源分析领域&#xff0c;Godot资源解包工具是一款专门用于解包…...

在Windows上获得MacBook级别触控体验:开源驱动完全指南

在Windows上获得MacBook级别触控体验&#xff1a;开源驱动完全指南 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchpad …...

如何通过GHelper实现ROG笔记本风扇精准控制:告别噪音与高温的终极指南

如何通过GHelper实现ROG笔记本风扇精准控制&#xff1a;告别噪音与高温的终极指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow,…...