python模块之signal信号
python模块之signal信号
1、简介
作用:发送和接收异步系统信号
信号是一个操作系统特性,它提供了一个途径可以通知程序发生了一个事件并异步处理这个事件。信号可以由系统本身生成,也可以从一个进程发送到另一个进程。
由于信号会中断程序的正常控制流,如果在中间接收到信号,有些操作(特别是I/O操作)可能会发生错误。
接收信号
signal.signal(sig,action)
sig为某个信号,action为该信号的处理函数**。**
例如:
signal.signal(signal.SIGALRM, hanlder) hanlder为信号处理函数
windows下sig信号:
>>> dir (signal) [ 'CTRL_BREAK_EVENT' , 'CTRL_C_EVENT' , 'NSIG' , 'SIGABRT' , 'SIGBREAK' , 'SIGFPE' , 'SIGILL' , 'SIGINT' , 'SIGSEGV' , 'SIGTERM' , 'SIG_DFL' , 'SIG_IGN' , '__doc__' , '__name__' , '__package__' , 'default_int_handler' , 'getsignal' , 'set_wakeup_fd' , 'signal' ]
- SIGINT:中断信号
- SIGTERM:终止信号
linux下sig信号:
>>> dir (signal) [ 'ITIMER_PROF' , 'ITIMER_REAL' , 'ITIMER_VIRTUAL' , 'ItimerError' , 'NSIG' , 'SIGABRT' , 'SIGALRM' , 'SIGBUS' , 'SIGCHLD' , 'SIGCLD' , 'SIGCONT' , 'SIGFPE' , 'SIGHUP' , 'SIGILL' , 'SIGINT' , 'SIGIO' , 'SIGIOT' , 'SIGKILL' , 'SIGPIPE' , 'SIGPOLL' , 'SIGPROF' , 'SIGPWR' , 'SIGQUIT' , 'SIGRTMAX' , 'SIGRTMIN' , 'SIGSEGV' , 'SIGSTOP' , 'SIGSYS' , 'SIGTERM' , 'SIGTRAP' , 'SIGTSTP' , 'SIGTTIN' , 'SIGTTOU' , 'SIGURG' , 'SIGUSR1' , 'SIGUSR2' , 'SIGVTALRM' , 'SIGWINCH' , 'SIGXCPU' , 'SIGXFSZ' , 'SIG_DFL' , 'SIG_IGN' , '__doc__' , '__name__' , '__package__' , 'alarm' , 'default_int_handler' , 'getitimer' , 'getsignal' , 'pause' , 'set_wakeup_fd' , 'setitimer' , 'siginterrupt' , 'signal' ]
即通过建立一个回调函数来接收信号,这个回调函数称为信号处理函数(signal hanlder),它会在信号出现时调用。
2、接收信号
signal.signal(sig,action)
SIGUSR1和SIGUSR2是留给用户使用的信号。windows下无这两个信号。
这个脚本会无限循环,每次暂停3秒钟。有信号到来时,sleep()调用被中断,信号处理程序receive_signal被调用.信号处理程序返回时,循环继续。
3、发送信号
os.kill(pid, sig):pid为进程号, sig为信号
父进程使用kill()和signal模块向子进程发送信号。在父进程中,使用kill()发送一个USR1信号之前会暂停很短一段时间,这个短暂的暂停使子进程有时间建立信号处理程序。
signal.pause():等待直到接收一个信号
正常情况下,SIGINT会产生一个KeyboardInterrupt,这个例子将忽略SIGINT,并在发现SIGUSR1时产生一个SystemExit。
signal.alarm(time):如果time是非0,这个函数则响应一个SIGALRM信号并在time秒后发送到该进程。
python模块之signal信号相关推荐
- linux python 信号,Python模块之信号(signal)
在了解了Linux的信号基础之 后,Python标准库中的signal包就很容易学习和理解.signal包负责在Python程序内部处理信号,典型的操作包括预设信号处理函数,暂 停并等待信号,以及定时 ...
- Python中的signal模块和Ctrl+C操作
2019独角兽企业重金招聘Python工程师标准>>> Python中的signal模块处理OS级别的信号.例如Ctrl+C会进程发送信号. 参考这里:https://my.osch ...
- python模块—signal
文章目录 信号 介绍 生命周期 信号处理 信号表示 信号分类 信号通信 常用信号 python signal 信号 介绍 信号signal的全称是软中断信号,是用来通知进程发生的异步事件,是在软件层次 ...
- python signal模块作用_Python模块:signal
一.信号的概念 信号(signal)– 进程之间通讯的方式,是一种软件中断.一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号. 在Linux下可以通过kill -l来查看所有的信息: $ k ...
- Python标准库07 信号 (signal包,部分os包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux的信号基础之后,Python标准库中的signal包就很容易学习 ...
- Python分析离散心率信号(下)
Python分析离散心率信号(下) 如何使用动态阈值,信号过滤和离群值检测来改善峰值检测. 一些理论和背景 到目前为止,一直在研究如何分析心率信号并从中提取最广泛使用的时域和频域度量.但是,使用的信号 ...
- Python分析离散心率信号(中)
Python分析离散心率信号(中) 一些理论和背景 心率信号不仅包含有关心脏的信息,还包含有关呼吸,短期血压调节,体温调节和荷尔蒙血压调节(长期)的信息.也(尽管不总是始终如一)与精神努力相关联,这并 ...
- Python分析离散心率信号(上)
Python分析离散心率信号(上) 一些理论和背景 心率包含许多有关信息.如果拥有心率传感器和一些数据,那么当然可以购买分析包或尝试一些可用的开源产品,但是并非所有产品都可以满足需求.也是这种情况.那 ...
- python用什么来写模块-史上最详细的python模块讲解
模块的概念你一定不会陌生吧,这是一个非常宽泛的概念,在各行各业都会用到.这里我们涉及的只是软件中的模块概念.说到模块,就得先了解下模块化程序设计的概念.(如果您对模块化程序设计的概念已经烂熟于心,尽可 ...
最新文章
- 大用户规模互联网架构发展
- Vue+DataTables warning:table id=xxxx -Cannot reinitialize DataTable.报错解决方法
- C#中lock死锁实例教程
- 多线程之线程池-各个参数的含义- 阿里,美团,京东面试题目
- linux 定时器_定时器: Nodejs 中的 timers
- 图片网站用什么服务器好,网站图片与框架放在不同服务器有哪些优缺点
- java数组 0912
- mysql5.7无法启动问题
- 普通计算机用的是什么屏幕,笔记本屏幕的色域 72%NTSC和100%sRGB有什么区别
- Gmail邮箱允许异地登录/客户端登录
- 隐藏win10资源管理器中显示的「DVD驱动器」
- Ubuntu18.04安装OBS Studio
- 光纤中的多种光学模式芯径_光纤的结构是什么?种类有哪些?该怎么选择?
- C语言递归之苹果分盘问题
- 嵌入式和物联网有什么关系?一文教你搞明白。
- 深度神经网络和循环神经网络,深层循环神经网络
- r5 5500u和r5 5600u的区别 哪个好
- E码通电子凭证服务平台 通用接口接入规范
- 基于互信息和左右信息熵的短语提取识别
- iPhone/iPad/iTouch配置Bash/C/C++/OC/Java/Theos/MySQL/Python开发环境! 让我告诉你iOS的魅力~
热门文章
- Winrar制作自解压安装程序
- 一枚笑脸 emoji,估值 20 亿美元!这个开源项目有点强...
- php代码数鸡蛋数学题,求鸡蛋数
- 后浪小萌新Python --- 字典
- 腾讯云 8核 16G 18M 的轻量应用服务器评测
- SuperPoint学习训练纪录 无训练版与带训练版本(一)
- JVM---垃圾回收概述及相关概念
- 【Flutter从入门到实战】⑪、豆瓣案例-1、星星评分Widget、虚线Widget、TabbarWidget、BottomNavigationBarItem的封装、初始化配置抽取
- 怎么将模糊的照片变清晰
- 老祖宗的老话大全收藏