这是关于设计决策并理解采用其他服务的过程和缺点。所以我们有两个服务,两个不相关的服务器,一个监听端口10000,另一个是xinetd服务器通过3个不同的端口响应3个不同的请求(它的客户端使用nc server port1 | port2 | port3来检索数据)。
有一天,由于安全问题,xinetd服务器必须停止,只是因为第一台服务器保留了相同的数据,我们决定采用xinetd服务器,将USR1信号发送到第一台服务器并让它暴露给同一公众数据。因此,需要添加逻辑以重新定义第一服务器中的信号处理。我们计划使用USR1(10,16和30)例如,在xinetd服务器中,kill -10 first_server将让第一个服务器吐出旧服务器用来发出的相同数据,并仍然转储到第一个端口。这个论点是一个糟糕的设计,因为它滥用了unix信号的使用,当然还重新定义了POXIS和Linux预定义的10,16和30个符号行为。技术上这真的很糟糕吗?对系统有什么危害?
答案 0 :(得分:1)
10是SIGBUS,一个总线错误 - 你可能不应该碰那个。 30和31是SIGUSR1和SIGUSR2,它们是用户定义的,不保留用于任何特定目的。 16是SIGURG,套接字上的紧急数据,你可能不需要,但最好使用31以上的实时信号。