Ctrl-C没有正确关闭多线程python(+ flask)程序

时间:2014-08-04 18:44:36

标签: python sockets flask

我在OS-X上,使用烧瓶库制作一个小API。

通常当我使用Ctrl-C终止该过程时,它过去只会引发KeyboardInterrupt,但现在它将以socket.error: [Errno 48] Address already in use退出。之后,尝试重新启动程序会引发相同的错误。这曾经偶尔发生,但现在似乎每次都会发生。 Activity Monitor显示Python进程仍在运行3个线程。

修复方法是退出活动监视器中的进程。

为什么进程不再正常终止(注意:我使用的是Ctrl-C,而不是Ctrl-Z),有没有办法解决这个小小的不便?

1 个答案:

答案 0 :(得分:0)

您可能需要设置SO_REUSEPORT和SO_REUSEADDR套接字选项吗?该错误意味着您尝试在关闭后上一次绑定超时之前绑定端口。