
我在中寫了一些條目/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
配置中有一些特定的怪癖,那麼了解這些怪癖的人可能會給您更有針對性的答案。