这是关于设计决策并了解采用其他服务的利弊。所以我们有两个服务和两个不相关的服务器,一个监听端口 10000,另一个是 xinetd 服务器通过 3 个不同的端口响应 3 个不同的请求(它的客户端使用 nc 服务器端口 1|端口 2|端口 3 来检索数据)。
有一天,因为安全问题,xinetd 服务器不得不停止,因为第一台服务器保留了相同的数据,我们决定采用 xinetd 服务器,向第一台服务器发送 USR1 信号,让它暴露相同的公共数据。因此,需要添加逻辑来重新定义第一台服务器中的信号处理。我们计划使用 USR1 (10, 16, 30) 例如,在 xinetd 服务器中, kill -10 first_server 会让第一台服务器吐出与旧服务器过去发出的相同的数据,并且仍然转储到第一个端口. 争论是这是一个糟糕的设计,因为它滥用了 unix 信号使用,当然还重新定义了 POXIS 和 Linux 预定义的 10、16 和 30 符号行为。这在技术上真的很糟糕吗?会对系统造成什么危害?