设为首页 收藏本站
查看: 609|回复: 0

[经验分享] python 对信号 处理的 测试

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2018-8-3 12:11:11 | 显示全部楼层 |阅读模式
  python 对信号 处理的测试
  小结下:
  每次信号 会将当前执行的函数挂起,进入 信号处理函数
  如果信号处理函数还在处理,又来信号,当前函数仍然被挂起
  执行完毕回到刚才挂起点继续执行
  从下面输出 我们就可以看出来
  



  • ^Cget an signal: 2 9
  • ^Cget an signal: 2 10
  • ^Cget an signal: 2 11
  • ^Cget an signal: 2 12
  • ec 12 t: 12
  • ec 12 t: 11
  • ec 12 t: 10
  • ec 12 t: 9

  


  • #coding:utf-8
  • '''''
  • python 对linux 中断机制的测试
  • 输出: 按ctrl+c 效果
  • python test_sig.py
  • . 0
  • . 0 . 1
  • . 1 . 2
  • . 2 . 3
  • . 3 . 4
  • . 4 . 5
  • . 5 . 6
  • . 6 . 7
  • . 7 . 8
  • . 8 . 9
  • . 9 . 10
  • . 10 . 11
  • . 11 . 12
  • . 12 . 13
  • . 13 . 14
  • . 14 . 15
  • . 15 . 16
  • . 16 . 17
  • . 17 . 18
  • . 18 . 19
  • . 19 . 20
  • . 20 . 21
  • . 21 . 22
  • . 22 . 23
  • . 23 . 24
  • . 24 . 25
  • . 25 . 26
  • ^Cget an signal: 2 1
  • ^Cget an signal: 2 2
  • ^Cget an signal: 2 3
  • ^Cget an signal: 2 4
  • ^Cget an signal: 2 5
  • ^Cget an signal: 2 6
  • ^Cget an signal: 2 7
  • ^Cget an signal: 2 8
  • ^Cget an signal: 2 9
  • ^Cget an signal: 2 10
  • ^Cget an signal: 2 11
  • ^Cget an signal: 2 12
  • ec 12 t: 12
  • ec 12 t: 11
  • ec 12 t: 10
  • ec 12 t: 9
  • ec 12 t: 8
  • ec 12 t: 7
  • ec 12 t: 6
  • ec 12 t: 5
  • ec 12 t: 4
  • ec 12 t: 3
  • ec 12 t: 2
  • ec 12 t: 1
  • . 26 . 27

  • main

  • '''
  • import sys
  • import signal
  • e={'flag':0,'c':0}

  • def handler(signum, frame):
  •     e['c']+=1#计数器
  •     print "get an signal:", signum,e['c']
  •     import time
  •     t=e['c']
  •     time.sleep(2)
  •     print 'ec', e['c'],'t:',t
  •     e['flag']=1


  • #开关
  • signal.signal(signal.SIGINT, handler)
  • signal.signal(signal.SIGTERM, handler)
  • signal.signal(3, handler)

  • def main():
  •     while 1:
  •         if e['flag']:break;
  •         for k in range(100):
  •             print '.',k
  •             if e['flag']:break;
  •             for i in range(100000):
  •                 if e['flag']:break;
  •                 s=i*i
  •             print '.',k,
  •             sys.stdout.flush()

  •         print
  •     print 'main'


  • main()
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545912-1-1.html 上篇帖子: python监控文件或目录变化 下篇帖子: python写报警程序中的声音实现winsound
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表