linux的run目录放什么文件
linux的run目录放什么文件详细介绍
在 Linux 系统中,/run 目录是一个重要的运行时临时文件存储目录,主要用于存放系统启动后运行过程中生成的临时状态文件。这些文件通常在系统启动时创建,关机时自动删除,其设计遵循 FHS(Filesystem Hierarchy Standard) 规范,具体用途和常见文件类型如下:
一、核心用途
- 存储进程相关信息
- 记录运行中进程的状态,如进程 ID(PID)、控制信息等,确保系统能实时获取进程状态。
- 进程间通信(IPC)
- 存放 Unix 域套接字(Socket)和命名管道(FIFO),用于本地进程间通信。
- 临时系统状态数据
- 存储系统运行时生成的临时配置、锁文件、设备信息等,无需持久化存储的数据。
二、常见文件 / 目录结构
/run/pid/- 每个运行中的进程在此生成一个以 PID 命名的文件(如
1234.pid),内容为进程 ID。 - 例:
systemd进程的 PID 文件为/run/pid/1.pid。
- 每个运行中的进程在此生成一个以 PID 命名的文件(如
/run/sockets/- 存放 Unix 域套接字文件,用于本地进程间通信(如
dbus、avahi等服务的套接字)。 - 例:
/run/sockets/dbus-system是系统 D-Bus 服务的套接字。
- 存放 Unix 域套接字文件,用于本地进程间通信(如
/run/lock/- 存储锁文件(Lock Files),确保资源被独占访问(如某些设备或配置文件的锁)。
- 例:
/run/lock/console表示控制台被占用的锁文件。
/run/udev/- 存放
udev设备管理器生成的临时设备信息(如设备节点的权限、属性等)。 - 注意:现代系统中设备节点通常直接存放在
/dev/,但部分元数据仍在此处。
- 存放
/run/systemd/- 存放
systemd初始化系统的运行时数据(如服务状态、单元文件链接等)。 - 例:
/run/systemd/system/包含临时激活的服务链接。
- 存放
- 其他临时文件
- 如用户会话信息(
/run/user/<UID>/,UID 为用户 ID)、网络接口状态文件等。
- 如用户会话信息(
三、关键特性
- 生命周期
- 目录在系统启动时由
systemd或初始化脚本创建,关机时自动清空,数据不持久化。 - 传统上,这些数据曾存放在
/var/run/,但现代系统(如使用systemd的发行版)中,/var/run/通常是指向/run/的符号链接,以保持兼容性。
- 目录在系统启动时由
- 权限控制
- 通常仅允许 root 或特定用户写入,读取权限根据文件用途开放(如 PID 文件允许所有用户读取)。
- 与
/tmp的区别/run存放系统级运行时数据(如进程 PID、服务套接字),而/tmp用于用户或应用的临时文件(如编辑器暂存文件)。/run中的文件通常在系统关闭时删除,而/tmp可能根据配置保留一段时间(如systemd-tmpfiles-clean.service定期清理)。
四、典型场景举例
- 当启动一个服务(如
sshd),其 PID 会写入/run/pid/sshd.pid,便于systemd管理。 - 当用户登录时,会话信息会存放在
/run/user/1000/(假设用户 UID 为 1000)。 - 内核通过
/run/udev/临时记录设备热插拔事件的状态。
总结
/run 目录是 Linux 系统运行时的 “临时状态中心”,存储进程、服务、设备的实时信息,确保系统高效管理资源和进程通信。其内容动态生成,随系统启动而存在,关机后消失,是现代 Linux 文件系统中不可或缺的组成部分。