user-0 提问: unix本地套接字是毛东西？

回复:
user: user-1
content: UNIX socket是用来进程间通信的,2  3指的是当前被引用(使用)数, 21380 指的是I-Node 跟文件系统相关,网上一大堆资料自己搜一下  2743/smbd  就是-p结果 PID/进程名 []中间的是flag, 常见的是[ACC] SO_ACCEPTON 显示为ACC,SO_WAITDATA 显示为W,SO_NOSPACE 显示为N.    再具体的你网上搜一下netstat命令 或者 man netstat都很详细的

user: user-2
content: man netstat 引用   活动的UNIX域套接字    Proto        套接字所用的协议(通常是unix)。     RefCnt        使用数量(也就是通过此套接字连接的进程数)。     Flags        显示的标志为SO_ACCEPTON(显示为           ACC),           SO_WAITDATA           (W)           或           SO_NOSPACE            (N)。        如果相应的进程等待一个连接请求，那么SO_ACCECPTON用于未连接的套接字。其它标志通常并不重要     Type        套接字使用的一些类型：         SOCK_DGRAM               此套接字用于数据报(无连接)模式。         SOCK_STREAM               流模式(连接)套接字         SOCK_RAW               此套接字用于RAW模式。         SOCK_RDM               一种服务可靠性传递信息。         SOCK_SEQPACKET               连续分组套接字。         SOCK_PACKET               RAW接口使用套接字。         UNKNOWN               将来谁知道它的话将告诉我们，就填在这里 :-)     State        此字段包含以下关键字之一：        FREE   套接字未分配。         LISTENING               套接字正在监听一个连接请求。除非设置 --listening (-l) 或者 --all (-a) 选项，否则不显示。         CONNECTING               套接字正要建立连接。         CONNECTED               套接字已连接。         DISCONNECTING               套接字已断开。         (empty)               套接字未连。         UNKNOWN               ！不应当出现这种状态的。     PID/Program name        处理此套接字的程序进程名和PID。上面关于活动的Internet连接的部分有更详细的信息。     Path        当相应进程连入套接字时显示路径名。

user: user-3
content: lsof |grep 'local socket'  查找。试试。

user: user-0
content: 引用 3 楼 caddor9100 的回复:[quote=引用 1 楼 lgbxyz 的回复:] UNIX socket是用来进程间通信的,2  3指的是当前被引用(使用)数, 21380 指的是I-Node 跟文件系统相关,网上一大堆资料自己搜一下  2743/smbd  就是-p结果 PID/进程名 []中间的是flag, 常见的是[ACC] SO_ACCEPTON 显示为ACC,SO_WAITDATA 显示为W,SO_NOSPACE 显示为N.    再具体的你网上搜一下netstat命令 或者 man netstat都很详细的 引用 2 楼 iyomumx 的回复:man netstat 引用   活动的UNIX域套接字    Proto        套接字所用的协议(通常是unix)。     RefCnt        使用数量(也就是通过此套接字连接的进程数)。     Flags        显示的标志为SO_ACCEPTON(显示为           ACC),           SO_WAITDATA           (W)           或           SO_NOSPACE            (N)。        如果相应的进程等待一个连接请求，那么SO_ACCECPTON用于未连接的套接字。其它标志通常并不重要     Type        套接字使用的一些类型：         SOCK_DGRAM               此套接字用于数据报(无连接)模式。         SOCK_STREAM               流模式(连接)套接字         SOCK_RAW               此套接字用于RAW模式。         SOCK_RDM               一种服务可靠性传递信息。         SOCK_SEQPACKET               连续分组套接字。         SOCK_PACKET               RAW接口使用套接字。         UNKNOWN               将来谁知道它的话将告诉我们，就填在这里 :-)     State        此字段包含以下关键字之一：        FREE   套接字未分配。         LISTENING               套接字正在监听一个连接请求。除非设置 --listening (-l) 或者 --all (-a) 选项，否则不显示。         CONNECTING               套接字正要建立连接。         CONNECTED               套接字已连接。         DISCONNECTING               套接字已断开。         (empty)               套接字未连。         UNKNOWN               ！不应当出现这种状态的。     PID/Program name        处理此套接字的程序进程名和PID。上面关于活动的Internet连接的部分有更详细的信息。     Path        当相应进程连入套接字时显示路径名。 [root@localhost ~]# netstat -apn | grep myproc tcp        0      0 0.0.0.0:3344                0.0.0.0:*                   LISTEN      3575/./myproc      tcp        0      0 127.0.0.1:3344              127.0.0.1:52904             ESTABLISHED 3575/./myproc      unix  2      [ ACC ]     STREAM     LISTENING     43970  3575/./myproc     aServer unix  2      [ ACC ]     STREAM     LISTENING     43964  3575/./myproc     /tmp/Dtp unix  2      [ ACC ]     STREAM     LISTENING     43968  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     45162  3575/./myproc      unix  3      [ ]         STREAM     CONNECTED     44358  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     44359  3575/./myproc     aServer  能帮忙结合一个实战分析一下吗？    [root@localhost ~]# netstat -apn | grep myproc tcp        0      0 0.0.0.0:3344                0.0.0.0:*                   LISTEN      3575/./myproc      tcp        0      0 127.0.0.1:3344              127.0.0.1:52904             ESTABLISHED 3575/./myproc      unix  2      [ ACC ]     STREAM     LISTENING     43970  3575/./myproc     aServer unix  2      [ ACC ]     STREAM     LISTENING     43964  3575/./myproc     /tmp/Dtp unix  2      [ ACC ]     STREAM     LISTENING     43968  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     45162  3575/./myproc      unix  3      [ ]         STREAM     CONNECTED     44358  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     44359  3575/./myproc     aServer    myproc  这个程序，我知道它有2中socket方式，一种是本地，一种是tcp. tcp: 3344。  所以有了listen :3344 。 由于程序采用了2中套接字方式，所以有了52904口和它连接。 这我都理解。   不懂的是，从第3行unix 2到最后一行的unix 3。   unix  2      [ ACC ]     STREAM     LISTENING     43970  3575/./myproc     aServer unix  3      [ ]         STREAM     CONNECTED     44359  3575/./myproc     aServer   按照你们的逻辑， aServer是一个路径，所以我搜索看有没有这个文件，结果真搜索到了了这个文件，其权限为： srwxr-xr-x  这个文件的时间变化为： 每次开启 myproc等一系列程序的时候，这个文件就变更。可以得出结论：  aServer是一个 文件，而且是通信用的，之所以没有完整路路径，原因是： 其位置和myproc在同一个目录。  以上是我自己的分析。   我的问题：  aServer 有2行：为什么一个的flags是acc ，一个为空，这不是重点。重点是：  为什么一个的引用数目是2 ，一个是3？     同理：/tmp/this_unix_path 也是如此， 为什么一个是2，另一个是3 ？ unix  2      [ ACC ]     STREAM     LISTENING     43968  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     44358  3575/./myproc     /tmp/this_unix_path   3是代表有3个进程？如果真是3个进程，那么我该如何 找出这2个进程名字？    [/quote]   如何查找进程？ 我已经有方法了，用lsof 方法去查找。

user: user-0
content: 引用 1 楼 lgbxyz 的回复:UNIX socket是用来进程间通信的,2  3指的是当前被引用(使用)数, 21380 指的是I-Node 跟文件系统相关,网上一大堆资料自己搜一下  2743/smbd  就是-p结果 PID/进程名 []中间的是flag, 常见的是[ACC] SO_ACCEPTON 显示为ACC,SO_WAITDATA 显示为W,SO_NOSPACE 显示为N.    再具体的你网上搜一下netstat命令 或者 man netstat都很详细的 引用 2 楼 iyomumx 的回复:man netstat 引用   活动的UNIX域套接字    Proto        套接字所用的协议(通常是unix)。     RefCnt        使用数量(也就是通过此套接字连接的进程数)。     Flags        显示的标志为SO_ACCEPTON(显示为           ACC),           SO_WAITDATA           (W)           或           SO_NOSPACE            (N)。        如果相应的进程等待一个连接请求，那么SO_ACCECPTON用于未连接的套接字。其它标志通常并不重要     Type        套接字使用的一些类型：         SOCK_DGRAM               此套接字用于数据报(无连接)模式。         SOCK_STREAM               流模式(连接)套接字         SOCK_RAW               此套接字用于RAW模式。         SOCK_RDM               一种服务可靠性传递信息。         SOCK_SEQPACKET               连续分组套接字。         SOCK_PACKET               RAW接口使用套接字。         UNKNOWN               将来谁知道它的话将告诉我们，就填在这里 :-)     State        此字段包含以下关键字之一：        FREE   套接字未分配。         LISTENING               套接字正在监听一个连接请求。除非设置 --listening (-l) 或者 --all (-a) 选项，否则不显示。         CONNECTING               套接字正要建立连接。         CONNECTED               套接字已连接。         DISCONNECTING               套接字已断开。         (empty)               套接字未连。         UNKNOWN               ！不应当出现这种状态的。     PID/Program name        处理此套接字的程序进程名和PID。上面关于活动的Internet连接的部分有更详细的信息。     Path        当相应进程连入套接字时显示路径名。 [root@localhost ~]# netstat -apn | grep myproc tcp        0      0 0.0.0.0:3344                0.0.0.0:*                   LISTEN      3575/./myproc      tcp        0      0 127.0.0.1:3344              127.0.0.1:52904             ESTABLISHED 3575/./myproc      unix  2      [ ACC ]     STREAM     LISTENING     43970  3575/./myproc     aServer unix  2      [ ACC ]     STREAM     LISTENING     43964  3575/./myproc     /tmp/Dtp unix  2      [ ACC ]     STREAM     LISTENING     43968  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     45162  3575/./myproc      unix  3      [ ]         STREAM     CONNECTED     44358  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     44359  3575/./myproc     aServer  能帮忙结合一个实战分析一下吗？    [root@localhost ~]# netstat -apn | grep myproc tcp        0      0 0.0.0.0:3344                0.0.0.0:*                   LISTEN      3575/./myproc      tcp        0      0 127.0.0.1:3344              127.0.0.1:52904             ESTABLISHED 3575/./myproc      unix  2      [ ACC ]     STREAM     LISTENING     43970  3575/./myproc     aServer unix  2      [ ACC ]     STREAM     LISTENING     43964  3575/./myproc     /tmp/Dtp unix  2      [ ACC ]     STREAM     LISTENING     43968  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     45162  3575/./myproc      unix  3      [ ]         STREAM     CONNECTED     44358  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     44359  3575/./myproc     aServer    myproc  这个程序，我知道它有2中socket方式，一种是本地，一种是tcp. tcp: 3344。  所以有了listen :3344 。 由于程序采用了2中套接字方式，所以有了52904口和它连接。 这我都理解。   不懂的是，从第3行unix 2到最后一行的unix 3。   unix  2      [ ACC ]     STREAM     LISTENING     43970  3575/./myproc     aServer unix  3      [ ]         STREAM     CONNECTED     44359  3575/./myproc     aServer   按照你们的逻辑， aServer是一个路径，所以我搜索看有没有这个文件，结果真搜索到了了这个文件，其权限为： srwxr-xr-x  这个文件的时间变化为： 每次开启 myproc等一系列程序的时候，这个文件就变更。可以得出结论：  aServer是一个 文件，而且是通信用的，之所以没有完整路路径，原因是： 其位置和myproc在同一个目录。  以上是我自己的分析。   我的问题：  aServer 有2行：为什么一个的flags是acc ，一个为空，这不是重点。重点是：  为什么一个的引用数目是2 ，一个是3？     同理：/tmp/this_unix_path 也是如此， 为什么一个是2，另一个是3 ？ unix  2      [ ACC ]     STREAM     LISTENING     43968  3575/./myproc     /tmp/this_unix_path unix  3      [ ]         STREAM     CONNECTED     44358  3575/./myproc     /tmp/this_unix_path   3是代表有3个进程？如果真是3个进程，那么我该如何 找出这2个进程名字？