Thrift 捕获或阻止 SIGPIPE
或任何其他会终止程序的信号?
答案 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);