Systemd
“systemd-tmpfiles-setup.service”在只讀文件系統上執行緩慢
在無頭嵌入式電腦上(在只讀文件系統上啟動),我發現這
systemd-tmpfiles-setup.service
相當慢,並且會阻止其他服務更早啟動(我檢查過systemctl list-dependencies myservice.service
)。如何在只讀文件系統上使其更快?
journalctl -u systemd-tmpfiles-setup.service
還確認需要將近 4 秒:-- Logs begin at Sat 2021-12-11 01:55:43 GMT, end at Sat 2021-12-11 01:58:03 GMT. -- Dec 11 01:55:**43** foo systemd[1]: Starting Create Volatile Files and Directories... Dec 11 01:55:**47** foo systemd-tmpfiles[149]: **rm_rf(/tmp): Read-only file system** Dec 11 01:55:47 foo systemd-tmpfiles[149]: symlink(/etc/machine-id, /var/lib/dbus/machine-id) failed: Read-only file system Dec 11 01:55:47 foo systemd-tmpfiles[149]: symlink(../proc/self/mounts, /etc/mtab) failed: Read-only file system Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'coredump': No such file or directory Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory 'private': No such file or directory Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.X11-unix': No such file or directory Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.ICE-unix': No such file or directory Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.XIM-unix': No such file or directory Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.font-unix': No such file or directory Dec 11 01:55:47 foo systemd-tmpfiles[149]: Failed to open directory '.Test-unix': No such file or directory Dec 11 01:55:47 foo systemd[1]: Started Create Volatile Files and Directories.
這是結果
systemd-analyze plot
:
由於
systemd-tmpfiles-setup.service
在/usr/lib/systemd/...
我使用文章“三級關閉”中的“屏蔽”技術中定義:通過將服務文件符號連結到 /dev/null,您可以告訴 systemd 永遠不要啟動有問題的服務並完全阻止其執行。儲存在 /etc/systemd/system 中的單元文件會覆蓋 /lib/systemd/system 中具有相同名稱的單元文件。前一個目錄是管理員領域,後一個是你的包管理器的領域。通過在 /etc/systemd/system/ntpd.service 中安裝符號連結,您可以確保 systemd 永遠不會讀取上游提供的服務文件 /lib/systemd/system/ntpd.service。
我做了
ln -s /dev/null /etc/systemd/system/systemd-tmpfiles-setup.service
systemd-tmpfiles-setup.service
如果有一個“更聰明的解決方案”即使在只讀系統上也可以工作,我仍然很感興趣,而無需等待 4 秒。歡迎在評論或其他答案中提出想法!