
最近我升級到 debian jessie(目前測試),之後平均啟動時間增加到 3-4 分鐘。
在開始之前grub
,gdm
我會在 2-3 分鐘內收到此訊息。
A job is running for creating volatile and temporary files and directories
這是輸出systemd-analyze blame
[smit: ~] $ systemd-analyze blame
3min 14.096s systemd-tmpfiles-setup.service
8.657s NetworkManager.service
8.244s apache2.service
7.048s ModemManager.service
6.328s networking.service
6.004s accounts-daemon.service
5.288s binfmt-support.service
4.557s systemd-logind.service
4.541s alsa-restore.service
4.541s console-kit-log-system-start.service
4.530s lm-sensors.service
4.521s pppd-dns.service
4.520s redis-server.service
4.519s hostapd.service
4.519s minissdpd.service
4.519s timidity.service
4.519s nvidia-kernel.service
4.518s rc-local.service
4.437s bluetooth.service
4.408s avahi-daemon.service
2.243s systemd-fsck-root.service
1.437s exim4.service
1.415s keyboard-setup.service
系統啟動後,systemctl
不報告任何錯誤。
[smit: ~] $ sudo systemctl status systemd-tmpfiles-setup
● systemd-tmpfiles-setup.service - Create Volatile Files and Directories
Loaded: loaded (/lib/systemd/system/systemd-tmpfiles-setup.service; static)
Active: active (exited) since Fri 2014-10-17 01:19:09 IST; 1h 41min ago
Docs: man:tmpfiles.d(5)
man:systemd-tmpfiles(8)
Process: 230 ExecStart=/bin/systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev (code=exited, status=0/SUCCESS)
Main PID: 230 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/systemd-tmpfiles-setup.service
為什麼systemd-tmpfiles-setup.service
啟動慢?在哪裡可以獲得詳細的日誌systemd-tmpfiles-setup.service
?
答案1
當 systemd 啟動系統時,首先啟動的服務單元之一是 systemd-tmpfiles-setup。該服務運行命令:
# systemd-tmpfiles --create --remove
此命令從以下位置讀取設定檔(首先不太相關):
- /usr/lib/tmpfiles.d/*.conf- 這些檔案由相關 RPM 套件提供,不應由系統管理員編輯。
- /run/tmpfiles.d/*.conf- 這些文件通常由守護程序用來管理它們自己的運行時臨時文件
- /etc/tmpfiles.d/*.conf- 這些檔案供 sysadmis 配置自訂臨時位置,並覆蓋供應商提供的預設值
另外還有三個地方存儲暫存檔案:
- /var- 特定於該系統的可變資料應在啟動之間保留
- /跑步- 自上次啟動以來啟動的進程的運行時資料。其中包括進程 ID 檔案和鎖定檔案等。該目錄的內容將在重新啟動時重新建立。
- /tmp- 臨時文件的世界可寫空間。 10 天內未造訪、變更或修改的檔案將自動刪除。 /var/tmp 中存在另一個臨時目錄,其中超過 30 天未存取、更改或修改的檔案將自動刪除。
加起來:
檢查 tmp 設定檔以了解為什麼 tmp 設定需要如此多的時間,特別是注意 /run 目錄中的條目,因為它是在啟動時重新建立的。
答案2
這是因為 chrome beta 和 cups 有問題,它們在 /tmp 中建立了數百萬個檔案。如果 /tmp 是適合您的 tmpfs,請嘗試解除安裝並重新安裝它。否則, rm -rf /tmp 然後重新建立它。
答案3
systemd-tmpfiles 在網路啟動之前啟動,因此根據您的配置,systemd-tmpfiles 設定檔之一(位於 /usr/lib/tmpfiles.d 中)可能會嘗試為使用者或群組建立目錄,該目錄僅當網絡啟動後才可在系統上使用,例如LDAP 中定義的使用者或群組。
如果是這種情況,您應該將 systemd-tmpfiles-setup.service 移至網路之後啟動。