我有一个包含 ext4 文件系统映像的 NFS 文件系统。Linux 机器通过隐式挂载其中一个/dev/loop<n>
。但是当 systemd 重新启动时,它显然会在尝试卸载子回送文件系统之前关闭 NFS。它无法卸载回送,因此无法重新启动,并在控制台上留下一系列以下消息:
systemd-journald: Failed to send WATCHDOG=1 notification message: Transport endpoint is not connected
我希望这个系统无需我按下硬件电源开关即可重新启动。我认为如果我可以告诉 systemd 环回和父文件系统之间的依赖关系,它就会这样做。这可能吗?我试过了systemctl set-property dev-loop0.device After=rawparents-1.mount
,但它说Unknown assignment After=rawparents-1.mount.
此错误报告表示 systemd 不会自动理解涉及环回设备的依赖关系,并且它将无法获得这样做的能力。
答案1
我认为即使单元没有任何配置文件,您也应该能够定义插入文件。即:
mkdir -p /etc/systemd/system/dev-loop0.device.d/
cat > /etc/systemd/system/dev-loop0.device.d/after.conf << 'EOF'
[Unit]
After=rawparents-1.mount
EOF
systemctl daemon-reload
随后,检查文件是否已被处理systemctl show -p After dev-loop0.device
。
答案2
我从未使用过 set-property 子命令,但您可以执行它systemctl edit SERVICE
来为单元添加覆盖。
同样,systemctl cat SERVICE
非常有用,并且还包括对所涉及的文件的评论。