linux网络编程---------信号大讲堂

简介:

1. 信号简介     

    linux系统中无时无该产生着信号.信号在linux上又称软件中断,用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。信号机制除了基本通知功能外,还可以传递附加信息。


2. 信号的四要素

    • 编号:每种信号在linux系统中都有唯一的编号.可在命令下通过kill -l查看所有信号

    • 信号名:每种信号在linux系统中都有唯一的信号名,可在命令下通过kill -l查看所有信号

    • 事件:需要满足特定事件才发送

    • 默认处理动作:每种信号都有默认处理行为(下面会详细说明)


3. 信号的共用性:

    • 简单:信号是linux IPC进程间通信中开销最小的机制

    • 不能携带大量数据

    • 需要满足特定事件才发送



4. 信号的机制

    • 每个进程收到的所有信号,都是由内核kernel负责发送,并由内核在内核处理执行


5. 产生信号的分类

    • 键盘:

      • Ctrl+c --->  2  SIGINT 

      • Ctrl+z --->  19 SIGSTOP

      • Ctrl+\ --->  3  SIGQUIT


    • 系统调用

      • 程序上,kill sigqueue

    • 软件条件满足

      • alarm  setitimer 定时器


    • 硬件错误(程序错误)

      • 非法访问内存: 段错误 ----> 11   SIGSEGV

      • 除0: 浮点数例外        ----> 8    SIGFPE

      • 内存对齐出错:总线错误 ---->

    • 命令发出

      • kill

6. 信号的处理方式

    • 执行默认动作

      • term  终止进程

      • lgn   忽略信号

      • core  终止进程,并产生core文件,供调试使用

      • stop  停止(暂停)进程

      • cont  继续运行进程  

    • 执行忽略处理

    • 捕捉: 执行用户注册时的回调函数

  • ***注意:SIGKILL 和 SIGSTOP信号处理方式只能是执行默认动作,不能够忽略和捕捉.




      本文转自asd1123509133 51CTO博客,原文链接:http://blog.51cto.com/lisea/1787830,如需转载请自行联系原作者






相关文章
|
8月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
231 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
9月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
638 18
|
9月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
464 5
|
安全 Linux
【Linux】阻塞信号|信号原理
本教程从信号的基本概念入手,逐步讲解了阻塞信号的实现方法及其应用场景。通过对这些技术的掌握,您可以更好地控制进程在处理信号时的行为,确保应用程序在复杂的多任务环境中正常运行。
466 84
|
10月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
1165 5
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
412 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
12月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
359 18
|
10月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
226 0
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
1001 12
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
544 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估