进程间通信(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的信号

相关推荐
GKxx17 分钟前
在 HarmonyOS 上给 QEMU 搭一个最小 aarch64 Linux guest(内核 + busybox initramfs)
linux·华为·qemu·harmonyos·鸿蒙·鸿蒙pc
Neighbor_OldY28 分钟前
线上服务CPU飙高接口超时应急处置实战:从load爆表到快速定位根因,一次线上救火全记录
大数据·运维
fb_123451 小时前
虚拟化技术介绍
运维·服务器
CarIise1 小时前
事件传播、CSS动画、服务器字体与jQuery
服务器·css·jquery
treacle田1 小时前
达梦数据库-Linux DM主备集群动态增加节点-记录总结
linux·运维·数据库·达梦主备集群动态扩展
FIT2CLOUD飞致云1 小时前
1Panel AI一体机(GB10版)推出MiniMax H3本地视频生成方案
运维·ai·开源·1panel·ai视频·运维面板
ARM|X86+FPGA工业主板厂家1 小时前
基于Jetson TX2的矿用巡检机器人
linux·运维·机器人
杨云龙UP1 小时前
Oracle 19c RMAN历史备份清理失败:CONTROL_FILE_RECORD_KEEP_TIME 问题排查与整改实战
linux·运维·网络·数据库·oracle·rac
Alphapeople2 小时前
moveit真机部署
linux·运维·服务器