解密后的Systemd、crypttab和启动单元

解密后的Systemd、crypttab和启动单元

我有一个使用 crypttab 配置的加密分区,例如

/etc/crypttab:

name UUID=<THE_UUID> none luks,noauto

和 /etc/fstab

UUID=<THE_UUID> /mnt/mountpoint ext4 defaults,noauto 0,0

现在,我希望在我使用 手动解密分区后设备nfs-server.service能够自动启动。有了关于 #debian-Matrix-Channel 的一些建议,我终于得到了systemctl start [email protected]

# systemctl edit nfs-server.service
[Unit]
[email protected]
After=mnt-mountpoint.mount
Requires=mnt-mountpoint.mount

通过此设置,我可以在手动解密后启动 nfs-server。尽管如此,我还是希望 systemd 自动启动 nfs-server (它应该已经自动挂载当时解密的分区)。

我需要如何编辑nfs-server.service(或者甚至另一个单元?)以便 systemd 在解密分区后自动启动它?我想我可以类似地使用其他单元的逻辑在nfs-server.service?之后自动启动。

答案1

您可以更改 crypt 服务并添加弱依赖在nfs服务器上进入它。它将尝试启动 nfs-server.service,但如果启动失败也不会失败。这是Wants=[Unit]控制服务 ([email protected]):

[Unit]
Wants=nfs-server.service

然后,一旦成功运行,它应该尝试启动 NFS 服务器。systemctl start [email protected]


明智的做法是永远不要更改原始配置文件,并且仅在可能的情况下将自定义配置片段添加到放置目录中。一个重要原因是更新不会影响您的附加片段文件,另一个原因是这有助于保持配置干净整洁,使集成配置管理(如 Ansible 等)变得更容易。

在 systemd 中可以通过其覆盖来实现。在这种情况下,你可以[email protected]这样改变:

systemctl edit [email protected]

并按照我之前的描述仅将该[Unit]部分放在那里。 (在幕后,它将创建放置目录,并将内容放入或编辑其中的文件中。)我建议也采用相同的管理方式。/etc/systemd/system/[email protected]override.confnfs-server.service

相关内容