我有一个基于 systemd 的系统,其中包含一个带有 LSB 标头的 System V 样式 init.d 脚本。init.d 脚本必须在 fstab 中的所有文件系统都被挂载后才能启动。如何在 LSB 标头中指定这种类型的依赖关系?
当您说检查文件系统安装时,很明显,如果找到并安装了它,您将运行它,但不清楚的是,如果没有找到它,您希望它做什么?
我之所以这么问,是因为一个可能的答案是肯定的,在 LSB 中,是运行级别决定了这一点。在 Linux/Unix 启动时,文件系统在运行级别 1 下可用。因此,在 LSB 标头中设置“Default-Start: 2 3 4 5”。然后,将文件系统挂载条目放入 /etc/fstab 中,并可选择将其设置为“bootwait”以挂起系统并防止在挂载之前转换到运行级别 2,无论需要多长时间。这实际上是当(远程)文件系统非常关键时某些系统的配置方式。
否则,答案是否定的,您无法仅在 LSB 标头条目本身内检查已安装分区的存在。而且,由于您允许此特定系统在没有此特定文件系统的情况下启动,因此该文件系统显然不够“重要”以挂起系统等待安装可用性。
一个考虑因素是,如果您希望它在未安装文件系统时根本不运行,因为您试图满足另一个初始化脚本中的“Required-Start:”依赖项?希望不会像您所看到的那样,您正在从初始化脚本依赖项的非常滑坡上滑落。
希望您不希望它运行,因为如果它运行,它会弄乱一些东西,例如填充根文件系统(而不是作为 init 依赖项)?然后,您可以让它运行,但只需编写初始化脚本即可根据情况正常检查和退出。检查文件系统挂载并在未找到时退出的逻辑可能是一行代码。它可以插入到 LSB 标头之后。
归档时间: |
|
查看次数: |
961 次 |
最近记录: |