我有一个服务会在它启动后监听 8443 端口。我已将 xinetd 配置为在端口 8443 上建立连接时启动我的服务。
所以 Xinetd 应该启动我的应用程序,然后让我的应用程序处理更多的传入连接。
我重复“警告:无法获取客户端地址:传输端点未连接”,然后 Xinetd 禁用我的服务 10 秒。
这只发生在我设置 wait = yes 时。
阻止我的应用程序监听端口 8443 并没有什么不同。
我对 xinetd 等待标志的理解是正确的还是我对 xinetd 配置做错了什么?
我查看了手册页,wait=yes 通常与 UDP 相关联,但其中没有任何内容表明您不能将其与 TCP 一起使用。
我在 SO 上进行了搜索,发现的所有内容都有 tcp 与 wait=no 一起工作。
连接到 xinetd 时出现以下错误。
5786]: warning: can't get client address: Transport endpoint is not connected
5564]: EXIT: MyApplication status=1 pid=5786 duration=0(sec)
5564]: START: MyApplication pid=5787 from=<no address>
5787]: warning: can't get client address: Transport endpoint is not connected
5564]: EXIT: MyApplication status=1 pid=5787 duration=0(sec)
5564]: Deactivating service MyApplication due to excessive incoming connections. Restarting in 10 seconds.
5564]: FAIL: MyApplication connections per second from=<no address>
5564]: Activating service MyApplication
我的配置是:
disable = no
socket_type = stream
protocol = tcp
wait = yes
user = user
server = /usr/bin/MyApplication
port = 8443
type = UNLISTED
flags = IPv4