在LINUX上运行了一个SOCKET服务程序,在某端口如7700监听客户端的SOCKET连接,收发消息;程序运行了几个月一直没出现问题,今天突然出现大量客户端建立SOCKET超时,用ps命令检查发现服务进程还在,没有退出,用netstat查看端口发现也是LISTENING状态;检查服务端日志文件,没有发现任何异常,但是已经有半小时没有收到任何客户端的连接请求了,而实际上这段时间有大量客户端在试图建立SOCKET连接;KILL掉服务端进程,重新启动后恢复正常;从日志看服务端主进程一直在运行,并有日志输出,而端口监听线程没有任何日志输出了,怀疑该线程已经死掉;
请各位指点出现这种情况的原因,或者有没有什么办法能监控到监听线程的状态,当出现问题时主进程能自动释放监听端口,重新启动子线程,而不用手工干预