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

相关推荐
xh didida1 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
心易行者2 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
科技研学社2 小时前
精度决胜品质:羽绒服缝制工艺标准与自动化精度对标解析
运维·自动化
夜之眷属2 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
Initialize293082 小时前
Redis 内存打满、连接数飙红?运维排查四步法
运维
zly35002 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器
零基础1232 小时前
FinalShell 使用教程:从安装到高效运维
运维·经验分享·笔记·finalshell
帷幕落秋2 小时前
Docker的两种安装
运维·docker·容器
工业一体机老司机2 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互