在 linux 中加速 udisks2.service
我正在分析 systemd 並且我想提高我的系統的啟動速度。
systemd-analyze
明顯差距的責任列表中排名第一的服務udisks2.service
幾乎是 10 秒(由於依賴關係,這些數字可能會產生誤導,但udisks
沒有任何) . 禁用它不是一個好的解決方案,因為另一個服務需要它:$ cat /lib/systemd/system/udisks2.service ... [Install] WantedBy=graphical.target
我還嘗試在 VirtualBox 的 ubuntu 測試實例中禁用它,它完全啟動並且沒有問題,但是一旦
dbus-daemon
初始化,它就會自動啟動它。來自
man udisksd
:使用者或管理員永遠不需要啟動這個守護程序,因為每當應用程序嘗試訪問其 D-Bus 介面時,dbus-daemon(1) 或 systemd(1) 都會自動啟動它
在
udisks2.conf
手冊頁中,您可以將modules_load_preference
選項設置為ondemand
,預設情況下是這樣。似乎目前它處於最優化的形式。所以問題是“是否可以安全地加速 /usr/lib/udisks2/udisksd 的執行?
任何建議將不勝感激。
您是否有一個塊設備/分區/LV未列出
/etc/fstab
(因此看起來像是管理的候選對象udisksd
)但已加密或不易辨識?或者可能是 CD 驅動器或儲存卡讀卡器對“驅動器中沒有介質”錯誤的檢測速度較慢或不存在?對於儲存卡讀卡器,這種情況的症狀可能是
dmesg
輸出中該設備的 I/O 超時錯誤。
udisksd
在這些情況下,您可能希望通過創建udev
與問題設備匹配的規則並向其添加ENV{UDISKS_IGNORE}="1"
屬性來將這些問題設備排除在管理之外。規則可以很簡單
KERNEL=="sda6", ENV{UDISKS_IGNORE}="1" # encrypted disk
或按設備序列號
SUBSYSTEM=="block", ENV{ID_SERIAL_SHORT}=="S467NX0KB24459Y", ENV{UDISKS_IGNORE}="1"
或任何有效的
udev
屬性組合。您可能想閱讀
[/usr]/lib/udev/rules.d/*-udisks2.rules
範例和資訊性評論,但您應該添加自己的規則,/etc/udev/rules.d/*.rules
這樣它就不會被系統更新覆蓋。udev
將讀取兩個目錄,如果兩個目錄中都存在同名文件,則該文件/etc/udev/rules.d
將覆蓋相應的系統文件。在這種情況下,您可能不需要覆蓋系統預設規則文件;只需添加您自己的具有非重疊名稱的規則文件。您可以使用任何文件名,只要它位於正確的目錄並具有
.rules
後綴即可,但請記住,這些規則是按照文件名的預設 US-ASCII 排序順序執行的,因此有一個慣例是在文件名中添加數字前綴文件名使規則排序明確。