【发布时间】:2016-06-04 02:02:36
【问题描述】:
这可能是也可能不是编码问题。这也可能是 xinetd 守护进程的问题,我不知道。
我有一个从运行 xinetd 的 linux 服务器触发的 python 脚本。 Xinetd 已设置为只允许一个实例,因为我只希望一台机器能够连接到该服务,因此这也受到 IP 的限制。
当前,当客户端连接到 xinetd 时,服务正常工作并且脚本开始将其输出发送到客户端计算机。但是,当客户端断开连接(即:由于重新启动)时,该进程在服务器上仍然处于活动状态,这会阻止客户端在完成重新启动后连接的能力等等。
问:如何在 python 中检测到客户端已断开连接。也许我可以测试客户端是否不再读取标准输出(然后退出脚本),或者在 xinetd 中是否有更简单的方法可以在客户端断开连接时杀死子进程?
(我在 RHEL5 linux 上使用 python 2.4.3 - 需要 2.4 的解决方案,但了解 3.1 解决方案也很有用。)
【问题讨论】: