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