栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在关闭信号上在python脚本中运行代码

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在关闭信号上在python脚本中运行代码

shutdown
发送不处理的
SIGTERM
信号
atexit
。上下文管理器,
finally
块等也不会。

import signalsignal.getsignal(signal.SIGTERM)Out[64]: 0 #i.e. nothing

与此相反,例如ctrl-C:

signal.getsignal(signal.SIGINT)Out[65]: <function signal.default_int_handler> #i.e. something

您可以向其注册

byebye
函数
signal
以运行而不是不执行任何操作(这将导致解释器最终被shell杀死)

signal.signal(signal.SIGTERM,byebye)

如果执行上述操作,则需要做两件事:

  • 更改的签名
    byebye
    以接受
    signal
    将传递给它的两个参数。
  • 您应该
    sys.exit()
    byebye
    函数末尾执行类似call的操作,以允许python正常关闭商店。

您也可以将

signal
进行某种组合
atexit

import syssignal.signal(signal.SIGTERM, lambda num, frame: sys.exit(0))

它将直接插入您当前的代码。这样可以确保清理操作的原子性(即

byebye
保证是最后的I / O操作),但会有些笨拙。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/455913.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号