信号signal,可以用作进程线程通信,也可以用作接收中断后退出,退出时,清理资源,记录日志。python相关包为signa。

linux信号表
root@server:~# kill -l
) SIGHUP ) SIGINT ) SIGQUIT ) SIGILL ) SIGTRAP
) SIGABRT ) SIGBUS ) SIGFPE ) SIGKILL ) SIGUSR1
) SIGSEGV ) SIGUSR2 ) SIGPIPE ) SIGALRM ) SIGTERM
) SIGSTKFLT ) SIGCHLD ) SIGCONT ) SIGSTOP ) SIGTSTP
) SIGTTIN ) SIGTTOU ) SIGURG ) SIGXCPU ) SIGXFSZ
) SIGVTALRM ) SIGPROF ) SIGWINCH ) SIGIO ) SIGPWR
) SIGSYS ) SIGRTMIN ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMIN+
) SIGRTMIN+ ) SIGRTMIN+ ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX- ) SIGRTMAX-
) SIGRTMAX- ) SIGRTMAX

1.定时器

可以通过alarm()实现定时器功能,间隔n秒进程自己向自己发送信号,并被处理函数处理。

实例:

import signal
# Define signal handler function
def myHandler(signum, frame):
print("Now, it's the time")
exit() # register signal.SIGALRM's handler
signal.signal(signal.SIGALRM, myHandler)
signal.alarm()
while True:
print('go...') 注:这样就不用自己在while里用计数器去判断了,借助os,省事啊!

2. 程序退出

经常手动启动程序,然后ctrl+c退出,或者其他监护程序启动杀死进程,若是能在推出前干干净净的清理下资源就好了,比如关闭日志,数据库连接,socket等。

 signal.signal(signal.SIGINT, quit) #KeyboardInterrupt
signal.signal(signal.SIGTERM, quit) #kill

以上,只需要定义quit函数就好了。

redis的例子

3. linux

语言的很多功能来自os,故,多查看linux库手册,重要切记!

http://www.jb51.net/article/74844.htm

最新文章

  1. C++关于文件的读写(续)
  2. 关于ICE
  3. windows核心编程---第六章 线程的调度
  4. Classes
  5. usefull-url
  6. PYTHON 获取机器硬件信息及状态
  7. Java系统变量设置方式
  8. keepalived健康检查方式【转】
  9. MySQL的binlog及关闭方法
  10. 快速阅读《QT5.9 c++开发指南》1
  11. jquery插件中找到好玩插件 http://www.jq22.com/
  12. 阐述:SIP协议是什么
  13. Samsung_tiny4412(驱动笔记09)----alloc_pages,kmalloc,vmalloc,kmem_cache,class
  14. django自定义分页控件
  15. windows server 2008 配置DNS服务器与IIS
  16. socket,TCP/IP的理解(转)
  17. .Net深入体验与实践第一章
  18. [Doctrine Migrations] 数据库迁移组件的深入解析二:自定义集成
  19. 机器学习-chapter1机器学习的生态系统
  20. Windows 配置Apache以便在浏览器中运行Python script的CGI模式

热门文章

  1. Windows远程桌面,连接被拒绝,因为没有授权此用户帐户进行远程登录。
  2. java三大特性--多态(1)
  3. mui 总结
  4. SharePoint 特殊用户标识
  5. Android 热修复方案Tinker(一) Application改造
  6. python 获取前一天或前N天的日期
  7. [Python设计模式] 第8章 学习雷锋好榜样——工厂方法模式
  8. oracle 11g 安装及netca,dbca乱码之解决
  9. top命令详析及排查问题使用演示
  10. Swift Assert 断言