我在两个进程之间建立了一个联系:
netstat -tpn | grep 9999
tcp 0 0 127.0.0.1:*58728* 127.0.0.1:9999 ESTABLISHED 17366/*my_app.bin*在扼杀了这个过程之后,
ESTABLISHED状态。58728仍然在netstat表中,具有另一个进程名:tcp 0 0 127.0.0.1:*58728* 127.0.0.1:9999 ESTABLISHED 19645/*udhcpc*怎么可能是?
发布于 2017-08-20 11:26:15
问题似乎是udhcpc过程是从我的my_app.bin过程中产生的。
在这个派生过程中,派生过程继承了my_app.bin的所有打开文件描述符。因此,当我从my_app.bin关闭套接字时,它不是从udhcpc关闭的。
解决办法:
O_CLOEXEC,或稍后使用带有FD_CLOEXEC标志的fcntl()。在我的例子中,我不控制udhcpc,所以我需要使用选项号1。
https://unix.stackexchange.com/questions/386464
复制相似问题