linux 信号_[入门]谈一谈Linux中的信号
也许有一些同学有这样的疑问:
kill -9 PID 中的 -9 到底是什么意思?
Ctrl + C 是为什么可以停止掉运行的程序?
1. 什么是信号?
在计算机科学中,信号是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数。
Linux下可能通过 kill -l 命令查看所有信号
2. 信号的处理
信号是linux所使用的进程间通信的最古老的方式。它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式 。一个完整的信号周期包括三个部分,信号的产生,信号在进程中的注册,信号在进程中的注销,执行信号处理函数。如下图所示:
注意:这里信号的产生,注册,注销是信号的内部机制,而不是信号的函数实现。
对信号的响应由三种方式:
1、忽略信号,即对信号不做任何的处理。但SIGKILL和SIGSTOP不能忽略。
2、捕捉该信号,定义信号处理函数,当信号发生时,执行信号处理函数。
3、执行缺省操作,linux对每种信号都有默认的操作。
附录:常见操作相关的信号
命令 kill PID 默认使用的是 -15 即 SIGTERM 信号
按键 Ctrl-C 发送信号 -2 即 SIGINT
按键 Ctrl-Z 发送信号 -20 即 SIGTSTP (注意不是 SIGSTOP ,TSTP是指terminal stop,通常程序会后台运行,使用fg命令可恢复)
读者思考
1. kill -9 PID 中的 -9 到底是什么意思?kill不指定默认是什么信号?
2. Ctrl + C 是为什么可以停止掉运行的程序?程序中能忽略Ctrl-C操作么?
3. 自己动手写一个小程序,捕获一下信号进行处理?
4. uwsgi / nginx中实现 reload 或 restart 用信号机制了么,用的什么信号?
linux 信号_[入门]谈一谈Linux中的信号相关推荐
- 树莓派怎么学linux,树莓派使用入门用树莓派学 Linux
树莓派使用入门用树莓派学 Linux 我们的<树莓派使用入门>的第四篇文章将进入到 Linux 命令行. 在本系列的 第三篇文章 中开始了我们的树莓派探索之旅,我分享了如何安装 Raspb ...
- uefi启动linux过程_【转载】简述Linux的启动过程
本文将简单介绍一下Linux的启动过程,希望对那些安装Linux的过程中遇到了问题的朋友有些帮助 声明:本人没用过UEFI模式和GPT分区格式,所有关于这两部分的内容都是网络上找的资料,仅供参考. 典 ...
- ac3165 linux驱动_一文读懂Linux系统启动流程
Linux启动管理 11.1 CentOS 6.x系统启动过程详解 CentOS 6.x系统启动过程发生了较大的变化,使用Upstart启动服务取代了原先的System V init启动服务.Upst ...
- 串行和并行的区别_入门参考:从Go中的协程理解串行和并行
本文转自公众号语言随笔,欢迎关注 入门参考:从Go中的协程理解串行和并行mp.weixin.qq.com Go语言的设计亮点之一就是原生实现了协程,并优化了协程的使用方式.使得用Go来处理高并发问题 ...
- 服务器运维用macos,MacOS和Linux区别_网站服务器运行维护,linux,macos
MacOS catalina升级后Vmware黑屏的问题解决_网站服务器运行维护 macOS Catalina是苹果macOS全新版本.本文就来为大家介绍一下MacOS catalina升级后Vmwa ...
- linux 故障注入_用软件中断实现的Linux内核故障注入方法
用软件中断实现的 Linux 内核故障注入方法 郭庆伟 ; 杨麦顺 ; 张影 ; 张兴军 [期刊名称] <计算机应用> [年 ( 卷 ), 期] 2014(000)0z2 [摘要] 针对容 ...
- linux桌面_使用 KDE Plasma 定制 Linux 桌面 | Linux 中国
本文是 24 天 Linux 桌面特别系列的一部分.如果你认为没有太多自定义桌面的需要,KDE Plasma 可能适合你.-- Seth Kenlon KDE 社区的 Plasma 桌面是开源桌面环境 ...
- linux加权_「学员笔记」LINUX随堂笔记(十一):LVS负载均衡群集
第12章 LVS负载均衡群集 一.群集概述 1.1 群集的类型 无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机,根据群集所提 ...
- 用 u盘装linux系统怎么安装,怎么用U盘安装Linux系统_用U盘安装Linux系统的另类技巧 - 软件教程 - 格子啦...
Windows系统在操作系统中占据着主流的位置,很多用户也都已经习惯了Windows系列的操作界面,但是每天面对着同样的操作界面也会很厌烦,所以不妨来为你的电脑换个不一样的操作系统,尝试一下不一样的操 ...
最新文章
- Java 最高均薪 19015 元! 9 月程序员工资出炉,你拖后腿了吗?
- extjs 验证消息不显示
- [转载][QT][SQL]sql学习记录3_sqlite之update delete like
- TensorFlow中的Nan值的陷阱
- php点击按钮查询,管理界面点击按钮打开查询功能
- oracle until freed,ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法...
- python全栈和java全栈_Python是全栈式开发语言吗?原因竟是这样!
- java filter重定向_Java Filter(过滤器)——重定向
- Centos:更换为网易镜像源
- C语言经典100道编程练习题
- 计算机地图制图的点状符号制作,计算机地图制图地图符号库系统建立.doc
- 微信小程序弹框的使用
- orangepi pc GPIO 管脚图
- js三座大山----(第三座山)
- shineblink LD3320A语音识别
- 设置手机静音和固定电话来电时手机震动
- 【深度学习】深度学习:技术原理、迭代路径与局限
- 十万部冷知识:“沙特”为什么能赢“阿根廷”
- VPS是干嘛用的?有哪些知名牌子?与云服务器有什么区别?
- Android 下简单的 MP3 播放(代码分析)
热门文章
- WCF中使用HttpSession
- 2010软考软件设计师冲刺精选【专家压轴模拟•下】
- RedHat Linux 7.3基础环境搭建
- 网络爬虫--15.【糗事百科实战】多线程实现
- 学成在线--6.CMS页面管理开发(删除页面)
- 集合添加元素python_Python 集合(Set)
- tbase同步mysql_mysql主从同步
- python 多线程并发_寻找python大神!!!python如何多线程并发?
- python查询斐波那契数列通项公式_分享一个神奇的操作系统——斐波那契+MACD,每一波都有20%以上的收益!...
- 获取系统信息2——linux中使用随机数