/etc/fstab 掛載得太晚,導致某些守護程式失敗

/etc/fstab 掛載得太晚,導致某些守護程式失敗

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

相關內容