遇到一个文件描述符耗尽的问题。不知道在哪leak的。
同事告诉我用一下strace。
命令:
strace -fp 617 #617是进程号,也可以用strace命令起进程
strace打印出的log:
从上图的高亮部分可以看出,代码里用socket系统调用申请了一个fd之后,试图connect一个本地socket,但是由于server端没有上线(通信文件都没创建),导致connect失败了。失败之后,代码并没有close这个fd(如果close的话,在connect后面会打出来)。导致泄露。