当前位置: 首页 > 面试题库 >

如何在被Python杀死之前运行最后一个函数?

邹齐智
2023-03-14
问题内容

有什么方法可以在运行的Python脚本被其他脚本,键盘中断等终止之前停止运行最后一条命令。


问题答案:
import time

try:
    time.sleep(10)
finally:
    print "clean up"

clean up
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
KeyboardInterrupt

如果需要捕获其他操作系统级别的中断,请查看信号模块:

http://docs.python.org/library/signal.html

信号示例

from signal import *
import sys, time

def clean(*args):
    print "clean me"
    sys.exit(0)

for sig in (SIGABRT, SIGBREAK, SIGILL, SIGINT, SIGSEGV, SIGTERM):
    signal(sig, clean)

time.sleep(10)


 类似资料:
  • 问题内容: 我从python脚本生成了5个不同的进程,如下所示: 我的问题是,当父进程(主脚本)以某种方式被杀死时,子进程继续运行。 当父进程被杀死时,有没有办法杀死这样生成的子进程? 编辑:我正在尝试: 但这似乎不起作用 问题答案: 我自己也遇到了同样的问题,我有以下解决方案: 打电话之前,您可以设置。然后如此处所述python.org multiprocessing 进程退出时,它将尝试终止其

  • 问题内容: 我正在运行docker image tensorflow:1.1.0。我通过在本地克隆tensorflow对象检测api github并为我的docker连接到该文件夹​​添加了它。我正在尝试重新创建他们的宠物示例。 我相信我所有的代码和代码都在正确的地方。但是,当我尝试重新训练时,tensorflow在开始训练之前会自行杀死,但不会出现任何问题或错误。 我想我有东西出没了,但是没有任

  • 我试图使用tomcat目录中的关闭tomcat。但发现服务器没有正确关闭。因此无法重新启动 我的tomcat正在端口上运行。 我想杀死在上运行的tomcat进程。我首先想要拥有在特定端口(8080)上运行的进程列表,以便选择要杀死哪个进程。

  • 本文向大家介绍请问,如何杀死一个进程?相关面试题,主要包含被问及请问,如何杀死一个进程?时的应答技巧和注意事项,需要的朋友参考一下 考察点:进程 Kill pid  

  • 我使用startActivity(Intent)在我的Android应用程序中创建一个新活动。 有可能扼杀其中一项活动吗?如果有,如何扼杀? 我想要这样 Activity4->Activity1->关闭应用程序

  • 问题内容: 在生产环境中运行Express应用程序时,我想在服务器进程被杀死(即,发送SIGTERM或SIGINT)时正常关闭服务器。 这是我的代码的简化版本: 当我运行它并在浏览器中调用URL http:// localhost:3000 / 时,setInterval函数中的log语句将一直打印“当前打开1个连接”,直到我真正关闭浏览器窗口为止。显然,即使关闭选项卡也会使连接保持打开状态。 因