当前位置: 首页 > news >正文

【Linux】进程信号_1

文章目录

  • 八、进程信号
    • 1.信号
  • 未完待续


八、进程信号

1.信号

信号和信号量之间没有任何关系。信号是Linux系统提供的让用户/进程给其他进程发送异步信息的一种方式。
常见信号:
在这里插入图片描述
当信号产生时,可选的处理方式有三种:①忽略此信号。②执行该信号的默认处理动作。③自定义处理信号,这种方式称为捕捉(Catch)一个信号。
可以使用 kill -9 杀掉指定进程。
在这里插入图片描述
kill -2 可以终止指定进程。不是杀死的。
在这里插入图片描述
接下来我们让进程对2号信号做出自定义行为。需要使用 signal 函数。
在这里插入图片描述
Makefile

testSig:Signal.ccg++ -o $@ $^ -std=c++11
.PHONY:clean
clean:rm -f testSig

Signal.cc

#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
using namespace std;void handler(int signo)
{// 打印收到的信号cout << "get a signal : " << signo << endl;
}int main()
{signal(SIGINT, handler);while (true){cout << "I am activing, pid : " << getpid() << endl;sleep(1);}return 0;
}

在这里插入图片描述
此时进程当接收到2号信号时,就输出了一句话并没有终止进程。

// 忽略信号 ignoresignal(SIGINT, SIG_IGN);

signal 函数这样设置时,就代表将 SIGINT 信号忽略。
信号可以由 kill 命令产生,也能够从键盘上产生。比如 键盘上的 Ctrl + C 会被操作系统解释成2号信号。


未完待续

http://www.lryc.cn/news/383167.html

相关文章:

  • Vue71-嵌套(多级)路由
  • Elk安装及使用
  • 【代码随想录】【算法训练营】【第50天】 [1143]最长公共子序列 [1035]不相交的线 [53]买卖股票的最佳时机III [392]判断子序列
  • 【摄像头标定】双目摄像头标定及矫正-opencv(python)
  • PostgreSQL 高可用性与容错性(十三)
  • RabbitMQ的WorkQueues模型
  • 【LeetCode】每日一题:最大子数组和
  • 什么是进程?
  • 后端返回base64文件流下载
  • 云原生面试
  • 深度学习入门2—— 神经网络的组成和3层神经网络的实现
  • tensorflow学习:错误 InternalError: Dst tensor is not initialized
  • Docker环境安装anythingllm
  • FEC 向前纠错编码
  • 【jupyter notebook】解决打不开以及安装扩展插件的问题
  • Perl文件句柄深度解析:掌握文件操作的核心
  • Tomcat 下载部署到 idea
  • FutureTask如何使用?
  • Webpack: 如何借助预处理器、PostCSS 等构建现代 CSS 工程环境
  • 一篇文章告诉你如何正确使用chatgpt提示词
  • qt基于QGraphicsView的屏幕旋转
  • 一个土木工程专业背景的开发者,讲述开源带给他的力量
  • express+vue在线im实现【四】
  • 【Qt 实现3D按钮】
  • 8.每日LeetCode-笔试题,交替打印数字和字母
  • UE5近战对抗系统Tutorial
  • Typescript: declear
  • Linux内核编译流程
  • 昇思25天学习打卡营第2天 | 张量Tensor
  • 时间安排 |规划