我有一个与@.service 配对的systemd .socket。套接字包含“Accept=yes”,以便通过指定端口接受来自客户端的 TCP 连接,然后创建一个 @.service 实例,该实例执行我的服务器程序来处理 TCP 连接。目前,我正在使用一个连接到服务器(linux c++)的客户端(Windows 软件)进行测试。
我的问题是,对于第一次客户端连接尝试,TCP 连接成功,但在 systemd 启动关联的@.service 之前有很长的延迟(5-10 秒)。任何后续连接几乎都会立即启动@.service,除非收到 TCP RST 数据包。如果接收到 TCP RST 数据包,则在启动 @.service 之前延迟 5-10 秒再次进行下一个连接,并且循环重复自身。
我的 .socket 文件非常简单。对于 [Socket] 部分,它实际上只是指定了一个 ListenStream 端口和 Accept=true。
任何想法可能导致这种延迟?