如何在Python程序中处理操作系统信号?

2024-01-23

我正在编写一个 python 程序,它通过无限 while 循环从队列中读取数据。我如何处理操作系统/键盘中断(CTRL + C)发送的信号以打破 while 循环并关闭活动连接和文件并优雅地退出程序而不是终止进程。

while True:
    read_from_file_and_do_something()
    ## Handle a signal of shutdown here.
    ## Send email before exiting.

该程序将作为守护进程运行。因此需要发送信号。


I think signal https://docs.python.org/3.9/library/signal.html#signal.signal模块就是您正在寻找的,

def handler(signum, frame):
    print 'Signal handler called with signal', signum

signal.signal(signal.SIGABRT, handler)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python程序中处理操作系统信号? 的相关文章

随机推荐

  • 如何一次一行读取 csv 文件并随时替换/编辑某些行?

    我有一个 60GB 的 csv 文件 需要对其进行一些修改 客户想要对文件数据进行一些更改 但我不想重新生成该文件中的数据 因为这花了 4 天的时间 如何逐行读取文件 不是将其全部加载到内存中 并随时编辑这些行 替换某些值等 这个过程大概是
  • JQuery Ajax Post 导致 500 内部服务器错误

    我正在尝试执行此 AJAX 帖子 但由于某种原因我收到服务器 500 错误 我可以看到它在控制器中遇到了断点 所以问题似乎出在回调上 任何人 ajax type POST url InlineNotes Note ashx id notei
  • 在 Angular 中使用 bigint 文字时模块解析失败

    我正在开展一个个人项目来尝试学习 Angular 框架 我目前是它的新手 但我已经设法 我认为 包含javascriptbigint在打字稿中正确输入数字 通过在 tsconfig json 文件中定位 esnext 版本 因为这工作正常
  • Bootstrap 轮播上的动画高度变化 (v2.3.2)

    我正在尝试使用 Bootstrap 的轮播来处理高度不同的内容 高度会根据浏览器宽度而有所不同 并且轮播下方有内容 我想使用 CSS 来动画幻灯片之间的高度变化 在朋友的帮助下 我几乎可以在 FireFox 中实现此功能 第一张幻灯片跳转
  • 从 Cognito 触发器发送消息

    我想限制用户从 Cognito 托管的 UI 登录 我可以看到有触发器可以附加 lambda 但是每当我更改 lambda 内部的事件对象时 而不是获取自定义消息User exceeded limits I get unrecognizab
  • 如何像屏保一样改变CAGradientLayer的颜色?

    我被创造了UIView与申请CAGradientLayer颜色效果如我所附图片所示 现在 我想像屏幕保护程序一样平滑地改变它的渐变颜色从上到下的变化 我已经尝试过使用NStimer有点完成了 但它的颜色在改变CAGradientLayer看
  • 智能 JVM 和 JIT 微优化

    随着时间的推移 Sun 的 JVM 和 JIT 已经变得相当智能 过去作为必要的微优化而成为常识的事情不再需要 因为它会为您处理好 例如 过去的情况是 您应该将所有可能的类标记为 Final 以便 JVM 内联尽可能多的代码 然而现在 JI
  • C# 线程,WaitHandle.WaitAll

    是否可能不使用 WaitHandle WaitAll waitHandles 阻止 winForm 而只是设置另一个线程 当从 WaitHandle WaitAll 获取 complate 信号时将触发该线程 我不会使用WaitHandle
  • 使用 JavaScript 从对象中递归删除属性和值的最快方法是什么?

    我需要找到最快的方法来删除所有 meta对象的属性及其值 例如 part one name My Name something 123 meta test test123 part two name name dob dob meta so
  • Android PDF页面转图像api

    有没有可能的方法将 pdf 转换为图像并在图像视图上显示它们 PDF 不是由图像组成 而是由矢量组成 T Couple 开源 Java PDF 到图像转换器 例如 http www jpedal org http www jpedal or
  • 当所述列的值为 NULL 时,我在可空列上使用 JSON_extract 函数的 where 语句是否得到确认?

    我有一个 where 语句 其中包含 JSON extract 方法 JSON extract 使用一个名为的可为空列new value or old value 如果列包含 JSON 字符串 则该检查有效 但当列为 NULL 时 wher
  • jsf/primefaces 在 bean 初始化期间加载指示器

    在我的 JSF Primefaces 项目中 我在 bean 的 init 构造后 方法中加载了大量数据 这就是为什么我想在 Bean 加载期间显示 gif 指示器 我尝试使用 primefaces 和 Ajax 状态 展示的程序化版本 h
  • 无需 Web 界面即可在 Drupal 中切换主题

    我正在学习 php 和创建主题 不幸的是 当我编辑当前在 drupal 中使用的主题时 我在主题中犯了一个错误 即使我点击 drupal index php 也不会再显示任何内容 我想将损坏的 drupal 主题更改为可用的主题 但我无法这
  • Angular ngFor ngIF 通过管道过滤数据的条件

    ngFor 基于使用管道的搜索进行过滤 这工作正常 现在我必须根据搜索查询添加 ngIf 条件 如果没有任何结果 那么我必须显示另一个带有 无数据 文本的新 div
  • 设置STS但在web应用程序中保留formsauthentication

    我正在现有的网络应用程序上启用 Windows 身份基础 我希望尽可能少地干扰现有代码 因此我希望登录页面使用应用程序中留下的表单验证 并且如果用户通过特定页面 例如 im comming from some other site aspx
  • 使用 CDK 创建自定义 AWS IAM 策略

    根据文档 https docs aws amazon com cdk api latest docs aws cdk aws iam Policy html https docs aws amazon com cdk api latest
  • 验证 C 程序的输入

    我有一个 C 程序 其中接受 2 个数字作为输入 如何验证输入的内容是否仅为数字而不是字符 void main int a b printf Enter two numbers scanf d d a b printf Number 1 i
  • 将 IronPython 嵌入到我的 C# 应用程序中的最佳方式是什么?

    我有一个由非常精通技术的人使用的应用程序 他们想要可编程性的小岛 所以我使用了嵌入式 Iron Python 然而 自 IronPython 2 0 Eval 起不再起作用 具体来说 我无法同时加载模块和注入局部变量 有一个解决办法 我仍然
  • 如何查询Win32_PerfFormattedData_Tcpip_NetworkInterface中的特定适配器?

    如何查询特定适配器 最好基于 IP 地址 Win32 PerfFormattedData Tcpip NetworkInterface 我花了一段时间谷歌搜索这个问题 但没有找到解决方案 我尝试使用Win32 NetworkAdapter
  • 如何在Python程序中处理操作系统信号?

    我正在编写一个 python 程序 它通过无限 while 循环从队列中读取数据 我如何处理操作系统 键盘中断 CTRL C 发送的信号以打破 while 循环并关闭活动连接和文件并优雅地退出程序而不是终止进程 while True rea