#!/usr/bin/python#coding:utf-8

importsignal,osdefsignal_fun(signum,frame):print 'recv signal:%d' %signumif __name__ == '__main__':

signal.signal(signal.SIGINT, signal_fun)

signal.pause()

signal_fun接口就是接收到信号后自定义的处理方法,signal.pause()调用后,会使进程一直阻塞,直到接收到处理信号,处理完成后退出.

上面的脚本使用python sign.py运行后,会一直阻塞在signal.pause(),当输入ctrl+c后,脚本会接收到信号,然后打印信号类型,并结束运行,实际的编码过程中可以在主程序的main函数中预先注册需要处理的的信号.并使用默认的处理逻辑,满足实际的需要.使用的场景主要是:

1、设置标志让进程退出.进程在循环处理任务时不能够使用kill-9.这样会破坏进程的正常处理流程,使用kill时要等任务处理完才会退出,有时候等待的时间会比较久,因此,实际使用时,可以在接收信号后,设置进程退出标示,等当前事务处理完,判断退出标示,然后正常退出进程.

2、忽略某些信号,linux信号处理机制可以帮助我们做很多事情,但是遇到不想处理的信号时需要将其过滤,只处理需要使用的信号

三、定时发送信号

回到第一个问题,看如下案例:

运行脚本,脚本调用signal.alarm(5)5秒后给自身发送一个alarm信号,然后进程被阻塞,5秒后,进程收到自身给自身发送的信号,处理退出.alarm参数为0时,默认失效.

四、总结

signal.SIG* 各种信号表示

signal.signal(signum,frame) 注册信号

signal.pause() 堵塞信号

signal.alarm() 发送告警信号

python信号处理的优点_python 信号处理相关推荐

  1. python面向对象的优点_Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  2. python flask框架优点_python之全栈(Flask框架)

    虚拟环境 虚拟环境顾名思义就是虚拟的,在这里面装任何软件都不会影响到其他的程序,类似与一个抽屉. 使用虚拟环境的好处是:让电脑中安装很多种解释器,并且互不影响 virtualenv的使用 安装virt ...

  3. python有什么优点_Python是什么?有什么优点?赶紧来看看Python的入门教程

    Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结 ...

  4. python信号处理教程_Python信号处理

    python信号处理教程 Welcome to python signal processing tutorial. This is going to be a very basic lesson o ...

  5. vscode使用教程python-VSCode下好用的Python插件及配置_python

    这篇文章主要介绍了微软官方的Python插件,已经自带很多功能,下面是插件功能描述,其中部分内容我做了翻译,需要的朋友可以参考下 MS Python插件. 这是微软官方的Python插件,已经自带很多 ...

  6. python是一种动态语言、这意味着_【python编程的优点是什么?难怪选择python的人越来越多了】- 环球网校...

    [摘要]Python是一种动态解释的.强类型定义语言:编写它时不需要定义变量类型.python判断值的类型的方法是什么,那么python编程的优点是什么?难怪选择python的人越来越多了,所以你知道 ...

  7. 入门Python,这些优点你要知道

    彻底火了Python,相继让更多的人投入到了学习Python的大军中.那么,Python到底有什么魔力,让广大程序员爱不释手呢?小千总结了Python的一些优点,初学Python的小伙伴们一起来看看吧 ...

  8. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  9. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

最新文章

  1. Spark Streaming VS Flink Streaming
  2. 从Asp.net转到Php之调试
  3. python3安装-mac python3 轻松安装教程
  4. Docker-创建一个mysql容器,并保存为本地镜像
  5. 解决 VS2019 中.net core WPF 暂时无法使用 Designer 的临时方法
  6. 如何编写一个python项目
  7. 哈希表思路图解和代码实现
  8. MySQL 字符集相关问题
  9. django-删除学生数据
  10. 在STM32的官方库切换芯片型号
  11. 3dMax-win-64bit软件的安装-配置
  12. Windows上搭建SFTP服务器
  13. c语言计算机二级涉及内容,计算机二级(C语言)都考哪些内容?
  14. fastdfs fild_id
  15. HTML相对路径简析
  16. push msg php_php进程通信-消息队列
  17. 那些年逃离北京的软件测试员,现在都怎么样了?
  18. Guava ImmutableSet源码去重处理,Hash处理
  19. 【转】140种Python标准库、第三方库和外部工具
  20. Map集合及三层嵌套

热门文章

  1. 2017年4月5号课堂笔记
  2. MvcPager使用的Demo(同步分页)
  3. cocos2d-x安装
  4. quick time不可用_教程|用Selenium爬资源:DIY还是花钱?
  5. python 读取图片颜色值生成excel像素画
  6. PyCharm代码区不能编辑的解决办法
  7. Linux为什么虚拟内存大于物理内存?
  8. 查看高通kernel用哪个dsti
  9. Android开启/关闭飞行模式命令
  10. android6.0/7.0 dump CallStack使用