进程间通信(IPC机制):信号

信号:进程间通知机制(不携带数据)---异步通知机制

信号:软中断

  1. SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

  2. SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

  3. SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

  4. SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

  5. SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

  6. SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

  7. SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

  8. SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

  9. SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

  10. SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

  11. SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

  12. SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

  13. SIGRTMAX-1 64) SIGRTMAX

2) SIGINT:ctrl + c

让一个进程被打断

3) SIGQUIT:ctrl + \

让一个进程结束

9) SIGKILL:

强制让一个进程结束

11)SIGSEGV:

让一个进程结束(段错误)

13)SIGPIPE:

让一个进程结束(管道破裂)

14)SIGALRM:

让一个进程结束(定时时间到达)

17)SIGCHLD:

子进程结束时发送给父进程

18)SIGCONT:

让停止态的进程继续执行

19)SIGSTOP:

让运行态的进程进入停止态(暂停)强制停止

20)SIGTSTP:

ctrl + z 让进程进入暂停态,后台进程

来自终端的停止信号

10 SIGUSR1

12 SIGUSR2

专门预留给程序员使用的未定义信号。

1.注册信号:

信号处理方式:

  1. 忽略 :不处理

  2. 缺省 :按照操作系统默认方式处理

  3. 捕获 :按照自定义方式处理

cpp 复制代码
sighandler_t signal(int signum, sighandler_t handler);
功能:注册一个信号
参数:
        signum :要注册的信号的编号
        handler:对信号的处理方式
            SIG_IGN : 按忽略方式处理
            SIG_DFL :按照缺省方式处理
            自定义的函数:按照捕获方式处理
返回值:
    成功:handler
    失败:SIG_ERR

注意:

  1. 如果信号不注册,自动按照默认(缺省)方式处理;大多数信号默认处理方式是结束一个进程。

  2. 信号尽量早注册。

2.发送信号

kill();*

cpp 复制代码
int kill(pid_t pid, int sig);
功能:给进程发送一个信号
参数:
    pid:接收信号的进程
    sig:信号的编号
返回值:
    成功:0
    失败:-1

3.pause

void pause(void);

功能:挂起一个进程(让进程进入休眠)

可以通过一个信号唤醒pause挂起的进程,但是这个信号必须被捕获

4.alarm

unsigned int alarm(unsigned int seconds);

功能:定时若干秒之后发送一个SIGALRM的信号

相关推荐
Decay__5 分钟前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
贞明电子2 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
HideF3 小时前
Linux
linux·服务器·网络
万联WANFLOW3 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
乌恩大侠5 小时前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
Decay__6 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
丰锋ff7 小时前
压缩命令笔记
linux
江华森7 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼7 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测