概述
signal 简介
之前在python >>> multiprocessing,实现多处理器并行执行多进程 中实现了进程的创建和终止,但是我们该如何让一个进程被终止前捕获到这个终止信号,并作出一些后续操作呢?
python 当中提供了signal 机制,signal 实际上是一种软中断机制,用来通知进程发生了异步事件。我们可以通过在程序中注册一个信号监听器,当进程收到对应信号即做出相应操作。
(当我们在用[Ctrl + C] 终止一个程序的执行,其实就是向程序进程发送了SIGINT
信号使其终止)
示例
def signal_handler(signalnum, frame):
print(signalnum)
print(frame)
print("Stopping")
dev1.ungrab()
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
在该代码段中,我们定义了一个方法,并在下面对SIGINT
信号进行监听,当进程捕获到用户按下[Ctrl + C] 所发出的SIGINT
信号时,即执行signal_handler
方法中的程序(例如我这里就对某些获取到的外设资源进行必要的释放操作等)
除此之外,还有父进程对multiprocessing 子进程执行的terminate()
方法所释放的SIGTERM
信号等:
具体可参见:
http://www.voidcn.com/article/p-gjaeeqwv-xq.html
https://blog.csdn.net/wenzhou1219/article/details/81320622
最后
以上就是隐形大侠为你收集整理的python >>> signal 简单小记signal 简介示例的全部内容,希望文章能够帮你解决python >>> signal 简单小记signal 简介示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复