systemd:如何要求并有效安装特定的文件系统?

systemd:如何要求并有效安装特定的文件系统?

我想创建一个服务文件,该文件在启动时会导致在执行服务文件的操作之前安装指定的文件系统(因为它需要该文件系统可用)。此外,我希望此服务文件在无法安装文件系统的情况下正常失败(例如,因为它位于有时未插入的外部硬盘驱动器上)。

我的第一次尝试很简单并且部分成功:x-systemd.automount作为选项添加到文件系统的 fstab 行中。然后,当服务文件导致其挂载点被访问时,文件系统将自动挂载。但是,它不会正常失败,因为超时很长并且会被记录为错误。

我的第二次尝试并不成功,我将BindsTo=path-to-mountpoint.mount和添加After=path-to-mountpoint.mount到服务文件(x-systemd.automount已删除):path-to-mountpoint.mount找不到。我想它只是在成功安装后创建的,所以它并不适合我想做的事情。

答案1

根据手册:

/etc/fstab 中列出的挂载将在启动时和重新加载系统管理器配置时动态转换为本机单位。

这意味着您可以将以下内容添加到文件[Unit]的部分.service

Requires=opt.mount
After=opt.mount

/opt(这是我在文件中单独安装的情况的示例fstab)。

相关内容