我在中写了一些条目/etc/fstab
,例如 Mounting on /tmp
。
/etc/fstab
在一些守护进程(例如 Xorg)已经启动之后,systemd 似乎挂载条目太晚了。
Xorg.X11-unix
在 中创建/tmp
,然后 systemd 挂载在 上/tmp
,因此已经在 中的文件/tmp
消失。这会导致某些程序无法与 X 通信。
如何让/etc/fstab
条目提前挂载?或者我应该使用除 之外的其他东西/etc/fstab
?
答案1
这表明启动 Xorg 的单元文件没有足够的依赖项,因此systemd
最终过早运行它。
至少在 Debian 中,本地文件系统挂载自动具有顺序依赖性Before=local-fs.target
,并且需要local-fs.target
负责sysinit.target
早期系统初始化,因此所有本地文件系统都应在sysinit.target
完成后挂载。
除非启动 Xorg 的单元具有 ,否则DefaultDependencies=no
它会隐式具有Requires=sysinit.target
和After=sysinit.target
,因此它应该仅在sysinit.target
完成后启动。只有负责低级系统初始化的单元才应具有DefaultDependencies=no
.
但是,如果您/tmp
是远程文件系统,则可能需要向After=remote-fs.target
启动 Xorg 的单元添加依赖项。最简单的方法是使用systemctl edit
编辑它,从而systemctl
自动创建一个包含您的更改(仅)在/etc/systemd/system/<name of the Xorg-starting unit>.d/
.
您应该指出您的 Linux 发行版的名称和版本,这样,如果该特定版本的systemd
配置中有一些特定的怪癖,了解这些怪癖的人可能会给您更有针对性的答案。