7(4),2024年最新Github标星25K+超火的Linux运维实战项目

共62个,前31个普通信号,后31个实时信号,今天关注前31个

九号信号不能被捕捉

信号处理方式

1. 忽略此信号。

2. 执行该信号的默认处理动作。

3. 提供一个信号处理函数,要求内核在处理该信号时切换到用户态执行这个处理函数,这种方式称为捕捉(Catch)一个信号。

信号产生时

如何产生信号呢?

1. 通过终端按键产生信号——通过键盘产生

2. 调用系统函数向进程发信号——这里介绍三个系统调用函数kill,raise,abort

#include <signal.h>

int kill(pid_t pid, int signo);

int raise(int signo);

这两个函数都是成功返回0,错误返回-1。

kill命令是调用kill函数实现的。kill函数可以给一个指定的进程发送指定的信号。raise函数可以给当前进程发送指定

的信号(自己给自己发信号)。

#include <stdlib.h>

void abort(void);

就像exit函数一样,abort函数总是会成功的,所以没有返回值

abort函数使当前进程接收到信号而异常终止。

3. 由软件条件产生信号

alarm(seconds)

#include <unistd.h>

unsigned int alarm(unsigned int seconds);

调用alarm函数可以设定一个闹钟,也就是告诉内核在seconds秒之后给当前进程发SIGALRM信号, 该信号的默认处理动

作是终止当前进程。

4. 硬件异常产生信号(比较重要)

所有的信号都必须经过操作系统的手发出。

信号保存

位图

00000000000 … 00000111   ->32位

比特位的位置,代表的是,是谁   信号的编号

比特位的内容,代表的是,是否   是否受到信号

00100000000 … 00000000   代表收到三号信号

如何实现:

1.信号是给进程发的,task_struct结构体

struct task_struct{

unsigned  int  sigbitmap = 0;(也就是后文的pending表)

}

2.信号是给操作系统发的,那操作系统如何发送呢?

3.操作系统给进程“发送”信号,实际是给进程写信号。

阻塞信号

信号相关概念

实际执行信号的处理动作称为信号递达(Delivery)——抵达有三种

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

Linux运维知识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
[外链图片转存中…(img-oQr24y4o-1712644849807)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值