1 Matching Annotations
  1. Jul 2018
    1.   正如其他人所指出的——所以本条回答本应作为他们回答的回复,但这样的话对小小的回复框而言又显得太长了——这个目录用于存放一些初始化脚本,通常是在系统启动的过程中执行,此时,你系统中的其他文件系统可能是只读的,或者根本都还没挂载上。

        文件系统会在系统启动完毕后挂载,正如初始化脚本也有可能在系统运行中的任何时候被运行(比如手动启动一项服务,或者开关一项运行等级等)。已经挂载了的 /lib/init 即使在变成只读的情况下,你也不应该将它卸载。如果不是处于实际的存储数据的过程,它不会占用太多的系统资源,所以它不是一个性能考虑的点。

        我是没看到你将自己的脚本放到里面会对系统产生什么损害啦,当然你的脚本必须经过良好的测试,并且还要确保你的脚本不要完全占用它,以免其他脚本要使用时使用不了,不过,实现同样的目的更安全的方式是创建你自己的 tmpfs 挂载点(理论上而言,这样的挂载点你想要多少有多少,而且它们只在存储数据的过程中才占用系统内存空间),或者也可以使用 /tmp,它同样也被挂载成 tmpfs 文件系统,而不占用实际的硬盘空间(译注:它占用的是内存)。

        当你在使用 tmpfs 文件系统作为临时数据的目录时,必须注意它也会占用系统内存空间,当内存不够用时,则会转移到交换空间(译注:交换空间可以理解为硬盘上的虚拟内存)。这就是为什么我通常使用的都是一块独立的硬盘空间,而不是 /tmp 目录(该目录什么进程放的东西都有,占用的空间可比我单独一个脚本占用的要多得多)。如果你大部分时间都拥有大量的“空闲”内存的话,就当我没说。需要注意的是,在诸如 freetop 一类的管理工具的输出信息中,tmpfs 文件系统存储的数据所占用的内存通常会被记录在 “cached” 一栏中——这点可以详见 In Linux, what is the difference between "buffers" and "cache" reported by the free command?

        补充:差点忘了……创建你自己的 tmpfs 文件系统挂载点,而不是使用 Debian 创建的用来存放标准脚本的目录的另一个原因是,这样你对发行版的依赖就少了,这意味着当你的脚本要迁移到其他配置环境下时,你所需要做的改动要相对小得多。