Thrift会捕获还是阻止SIGPIPE?

时间:2016-11-03 04:41:46

标签: signals thrift

Thrift 捕获阻止 SIGPIPE或任何其他会终止程序的信号?

2 个答案:

答案 0 :(得分:0)

这完全取决于您选择使用的服务器实现,但大多数都将:

最好的方法是使用满足您需求的服务器实现来测试自己。

答案 1 :(得分:0)

否,Apache thrift不会捕获或阻止SIGPIPE或其他信号,并且它没有实现这种机制。到目前为止,您必须自己处理信号。 thrift cpp library的文档中也反映了这一点。

但是,如果您在Unix / Linux平台上将Thrift与OpenSSL一起使用,则重要的是在客户端和服务器中都忽略SIGPIPE信号,以避免潜在的终止:

  

SIGPIPE信号

     

如果不忽略SIGPIPE,则通过网络连接运行OpenSSL的应用程序可能会崩溃。当他们收到由于远程对等异常而导致的连接重置时,会发生这种情况,从而触发SIGPIPE信号。如果不处理,该信号将终止应用程序。

推荐的设置新信号处理程序的方法是sigaction,但是如果您只想忽略信号,则可以使用更简单的调用来发出信号:

#include <signal.h>

signal(SIGPIPE, SIG_IGN);