最近我升级到 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 移至网络之后启动。