![使用 systemd 进行网络挂载 /var](https://linux22.com/image/91009/%E4%BD%BF%E7%94%A8%20systemd%20%E8%BF%9B%E8%A1%8C%E7%BD%91%E7%BB%9C%E6%8C%82%E8%BD%BD%20%2Fvar.png)
我试图让我的系统安装/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 机制,但由于我无法控制的认证原因,我不能。)