我正在使用域
套接字从另一个进程
获取值,比如A从B
获取值,它可以运行好几个月.但是最近,A在“发送到”消息期间失败了,偶尔会出现“errno 111,连接被拒绝”.
我检查了B域套接字绑定文件,它存在.我也在另一台机器上做了一些测试,也运行良好.那么,之前有没有人遇到过这个问题?任何人都可以找到一些可能在这种情况下可能出错的线索吗?非常感谢.
当我用unix域
套接字看到这个
错误时,通常是因为进程B没有运行,或者连接路径不匹配. (如果B死了,是否会
自动重启?B可能会在B已经死亡但尚未重启的情况下发生故障吗?).另一种可能性:A的多个副本是否可能同时运行?如果B的尚未接受的连接队列已满,则可能会收到ECONNREFUSED
错误.
我建议在strace下运行进程A和B,或者:
strace -o A.log A
或者,如果该过程已经运行,
strace -o B.log -p <process-id-of-B>
也,
netstat -na
将为您提供系统中存在的所有unix域套接字的状态.