码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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函数是否执行。
    在这里插入代码片
    
    • 1
  • 相关阅读:
    计算机组成原理_Cache与主存的映射方式
    使用vscode开发uniapp项目常用的辅助插件,提升开发效率
    HTML+CSS+JS制作一个迅雷看看电影网页设计实例 ,排版整洁,内容丰富,主题鲜明,简单的网页制作期末作业
    插入排序问题
    100天精通Python(数据分析篇)——第53天:初始pandas模块
    Golang之文件系统事件监听
    【Unity3D】资源管理
    YoloV5|V7改进策略:全新特征融合模块AFPN,更换YoloV5|V7的Neck
    Flask——接口路由技术
    Go结构体深度探索:从基础到应用
  • 原文地址:https://blog.csdn.net/weixin_45228198/article/details/134542688
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号