使用 systemd 进行网络挂载 /var

使用 systemd 进行网络挂载 /var

我试图让我的系统安装/var一个自定义脚本,该脚本从网络服务器下载解密密钥。我有一个可以在 RHEL 6 中使用 SysVinit 运行的解决方案。我正在尝试使用 systemd 将其移植到 RHEL 7。

我需要在启动过程中尽早安装,然后再启动/var其他写入服务。/var这很棘手,因为我有Requires=network-online.target依赖After=network-online.target关系。

我有一个工作[email protected]文件,可以下载解密密钥并安装/var。如果我单独运行它,它会起作用,但在启动期间则不起作用。

[Unit]
Description=Mount encrypted partition %f
DefaultDependencies=no
[email protected]
[email protected]
Before=remote-fs.target
After=remote-fs-pre.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/scripts/my-custom-mount-script %f

[Install]
WantedBy=remote-fs.target

这样,下载和安装过程似乎在启动初期就开始了,但系统并没有等待它完成。一切都继续并行启动,导致各种服务因/var不可写而失败。

(顺便说一句,我无法避免使用自定义脚本。我很想使用内置的加密 FS 机制,但由于我无法控制的认证原因,我不能。)

相关内容