我的 Ubuntu 18.04 启动时间太长(大约一分钟左右)。我发现可以使用 找出原因systemd-analyze
,但它只给我Bootup is not yet finished. Please try again later.
系统运行正常,但即使过了一个多小时,启动仍然没有完成。有没有办法找出未加载的内容?
答案1
尝试这个:systemctl list-jobs 来自: https://www.horizonemb.com/tech-blog-posts/handling-systemd-analyze-error-bootup-is-not-yet-finished/
概述
systemd-analyze 工具要求所有启动服务均已完成,工具才能成功运行。如果仍有未完成的服务处于活动状态,则会返回以下错误:
root@yocto-platform1:~# systemd-analyze Bootup is not yet finished. Please try again later.
诊断
要找出哪些服务仍处于活动状态,可以使用 systemctl list-jobs 命令,例如:
root@yocto-platform1:~# systemctl list-jobs JOB UNIT TYPE STATE 1 multi-user.target start waiting 102 rsync-appdatas.service start running 82 sync-rtc-to-sys-clock.service start running 83 systemd-update-utmp-runlevel.service start waiting 4 jobs listed.
然后可以根据需要停止这些服务:
root@yocto-platform1:~# systemctl stop rsync-appdatas ```
原因
需要调查启动时未完成的服务。一旦可能导致自定义服务配置错误,该服务在启动时启动,并且预期在启动完成后持续运行,表现为传统 Unix 守护进程。对于这些类型的服务,应将其配置为 Type=forking。有关更多详细信息,请参阅此处(不要忘记添加 PIDFile 的创建): https://www.freedesktop.org/software/systemd/man/systemd.service.html