我今天刚升级到 Ubuntu Vivid (15.04),重启后我经历了一个很长的启动过程。我的笔记本电脑通常会在 5 秒或更短的时间内启动,现在几分钟后还没有完成。
按下Esc显示如下画面:
最后一行说“A start job is running for /etc/rc.local Compatibility (7 min 24s / no limit)”。尽管有“无限制”部分,它在整整 10 分钟后放弃(或完成?),引导过程完成。
每次启动时都会发生这种情况。
它可能与向 systemd 的过渡有关吗?我怎样才能解决这个问题?(现在,我在关闭笔记本电脑之前三思而后行)。我应该报告错误吗?如果是这样,在哪里?
我的/etc/rc.local
档案:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
fstrim -v /
fstrim -v /home
exit 0
该文件是可执行的:
$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 333 aug 14 2013 /etc/rc.local
fstrim
大约 2 年前,当我安装 SSD 时,我按照Easy Linux tips project的说明添加了 2行。
显然这些是我的问题的原因(我删除它们并重新启动 - 问题消失了),但我仍然认为系统不应该像那样挂起 10 分钟。另外,我fstrim
现在如何在启动时运行?
如果您将长时间运行的命令放入 中
rc.local
,您的启动将会延迟。您应该将这些发送到后台:也就是说,您可能不必自己执行此操作。Ubuntu 14.10为
fstrim
.奇怪的是,这在 Ubuntu 15.04 中突然成为一个问题,而在 Ubuntu 14.04 中它一直对你有效......
您还可以在 trim 之前添加一个 sleep 参数,这样两个 trim 命令将在设定的秒数后执行。这应该允许引导过程完成,导致修剪命令在后台运行。
像这样(延迟 40 秒):
顺便说一下,trim 的 -v(详细)参数在这种情况下没有用,因为它在后台运行。我也在我的 Easylinuxtips 操作指南中更改了它。
注意:我只在 Ubuntu 14.04 和 Linux Mint 17.x 的 rc.local 中测试过这样一个睡眠参数(除 trim 之外还有其他目的),所以我不确定这在 Ubuntu 15.04 中是否同样有效。
我有同样的问题,基本上当 rc.local 中的某些东西没有正常终止时会发生这种情况,例如某种守护进程。要查找 rc.local 中的哪个命令是 killall -9 命令/from/etc.local 的罪魁祸首,一旦来自 rc.local 的所有命令终止,它将重新启动。