在Linux系统中,.sock
文件(通常以.sock
为扩展名或位于/tmp/
等目录下)是Unix域套接字(Unix Domain Socket)的特殊文件类型。它是一种进程间通信(IPC)机制,用于在同一台机器上的不同进程之间高效传输数据。以下是详细解释:
.sock
文件):仅限本地通信,通过文件系统路径标识(如/tmp/mysql.sock
),不经过网络协议栈,因此速度更快、开销更低。ls -l /tmp/*.sock
),但实际数据不占用磁盘空间,仅作为通信端点。chmod
/chown
)管理访问,安全性更高。/var/run/mysqld/mysqld.sock
提供本地连接。/tmp/.X11-unix/X0
)使用套接字与客户端通信。systemd
的/run/systemd/private
套接字。bash
ls -l /tmp/*.sock # 查看权限、属主
ss -xlp | grep .sock # 查看正在使用的Unix套接字
bash
mysql -u root -S /var/run/mysqld/mysqld.sock
bash
rm -f /path/to/file.sock
特性 | Unix域套接字 (.sock ) |
普通文件 |
---|---|---|
存储内容 | 无实际数据,仅是通信端点 | 存储用户/系统数据 |
删除影响 | 使用中删除会导致通信中断 | 文件内容永久删除 |
占用空间 | 不占用磁盘空间(伪文件) | 占用磁盘空间 |
lsof -U
查看未关闭的套接字。.sock
文件是Linux高效进程间通信的桥梁,尤其适合需要低延迟、高安全性的本地服务。理解其原理有助于调试数据库、容器等应用的连接问题。