【发布时间】:2012-08-07 12:28:04
【问题描述】:
我正在尝试找出哪个进程正在持有 unix 域套接字的另一端。在一些strace 输出中,我已经确定了一个给定的文件描述符,该文件描述符涉及我当前正在调试的问题,我想知道哪个进程在另一端。由于该套接字有多个连接,因此仅按路径名是行不通的。
lsof 为我提供以下信息:
dbus-daem 4175 mvg 10u unix 0xffff8803e256d9c0 0t0 12828 @/tmp/dbus-LyGToFzlcG
所以我知道一些地址(“内核地址”?),我知道一些套接字号,我知道路径。我可以在其他地方找到相同的信息:
$ netstat -n | grep 12828
unix 3 [ ] STREAM CONNECTED 12828 @/tmp/dbus-LyGToFzlcG
$ grep -E '12828|ffff8803e256d9c0' /proc/net/unix
ffff8803e256d9c0: 00000003 00000000 00000000 0001 03 12828 @/tmp/dbus-LyGToFzlcG
$ ls -l /proc/*/fd/* 2>/dev/null | grep 12828
lrwx------ 1 mvg users 64 10. Aug 09:08 /proc/4175/fd/10 -> socket:[12828]
但是,这些都不能告诉我套接字连接的 other 端是什么。我如何知道哪个进程在控制另一端?
【问题讨论】:
-
你可能想在Unix and Linux Stack Exchange问这个问题
标签: linux kernel unix-socket