转自:http://blog.ddup.us/2011/04/01/disappearing-var-run-dir/
Fedora15中将会在根目录中引入一个新的目录/run。而且据这位来在redhat的同学称,Fedora,Debian,Suse以及Ubuntu等发行版的开发人员已经就这件事请谈妥了。Fedora和Suse已经添加这个目录了,Debian和Ubuntu也会马上跟上。而引入这个目录的目的是为了使run-time-dir管理更加标准。
/var/run
是干什么用的根据linux的文件系统分层结构标准(FHS)中的定义:
/var/run 目录中存放的是自系统启动以来描述系统信息的文件。 比较常见的用途是daemon进程将自己的pid保存到这个目录。 标准要求这个文件夹中的文件必须是在系统启动的时候清空,以便建立新的文件。
为了达到这个要求,linux中/var/run使用的是tmpfs文件系统,这是一种存储在内存中的临时文件系统,当机器关闭的时候,文件系统自然就被清空了。使用df -Th命令能看到类似的输出结果:
文件系统 类型 容量 已用 可用 已用%% 挂载点
none tmpfs 990M 384K 989M 1% /var/run
none tmpfs 990M 0 990M 0% /var/lock
当然/var/run
除了保存进程的pid之外也有其他的作用,比如utmp文件,就是用来记录机器的启动时间以及当前登陆用户的。
/run
代替这是因为/var/run
文件系统并不是在系统一启动就是就绪的,而在此之前已经启动的进程就先将自己的运行信息存放在/dev
中,/dev
同样是一种tmpfs,而且是在系统一启动就可用的。但是/dev
设计的本意是为了存放设备文件的,而不是为了保存进程运行时信息的,所以为了不引起混淆,/dev
中存放进程信息的文件都以"."开始命名,也就是都是隐藏文件夹。但是即便是这样,随着文件夹的数量越来越多,/dev
里面也就越来越混乱,终于有人坐不住了,所以引入了替代方案,也就是 /var/run
。
/var/run
有什么好处主要就是解决了上边说的管理不一致,最终使各个发行版统一管理。最终将/var/run
和/var/lock
都归并到/run
中。而且在也不用使用隐藏文件夹这种伎俩了,对管理员来说轻松了不少。同样/dev
中也不会有不相关的内容了。 但是这种根目录上的改变肯定不是一下就能完成的,Fedora15中只是刚引入/run
目录并将/var/run
和/var/run/lock
挂载到/run
和/run/lock
上,到F16的时候,/var/run
和/var/run/lock
就只是做为符号链接出现了。