python 子线程 sys.exit 无法结束进程 ... 除了 os._exit 还有什么办法优雅的结束进程吗?

2015-09-10 15:04:52 +08:00
 gamexg

需求是: python 主进程做一些工作,另起一个子线程做一些监控,发现系统异常时终止整个进程的工作,并设置进程退出代码。

结果发现子线程调用 sys.exit 居然不会终止进程,虽然文档上面写 sys.exit 只是引发异常,但 threading.Thread 把 SystemExit 捕获并忽略了太奇怪了吧?

os._exit 不执行各种清理操作,除了 os._exit 还有其他优雅的终止进程的办法吗?

3675 次点击
所在节点    Python
1 条回复
ryd994
2015-09-10 19:44:20 +08:00
子线程退出了啊,主线程没退出啊
你这样:开线程的时候指定 deamon_thread=True
想退出的时候调用 exit_main

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/219672

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX