我正在使用meta-raspberrypi构建我的raspberrypi映像
我看到与systemd相比,SysV的启动时间增加了大约2秒。

我从内核日志中得到的信息不多。
[ 4.452082] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[ 8.111375] i2c /dev entries driver
[ 8.284057] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered[ 3.839449] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[ 5.990874] i2c /dev entries driver
[ 6.136112] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered如上面所示,systemd在基本内核引导之后和加载i2c内核模块之前花费了一些额外的时间。
我假设这段时间花在启动systemd服务上。
如果是,我如何检查哪些服务已经启动,每个服务都需要多长时间?
发布于 2017-10-05 12:04:57
首先,我会注意到问题中的两个输出都来自SysV init (INIT: version 2.88),因此在某种程度上您会感到困惑。
无论如何,WRT各种服务的时间安排,您可以使用systemd-analyze plot > sysd.svg获得一个非常时髦的SVG (这里的重定向是必要的,否则它会将SVG数据输出到标准输出,这不是很有用):

没有其他输出格式可供选择,但这一种(来自运行Raspbian 8的B+ )已被convert sysd.svg sysd.jpg转换为JPEG (convert是ImageMagick的一部分,可在任何linux发行版上使用)。
systemd-analyze blame提供了一个更简单的文本列表。
systemd正在启动任何我不需要的服务
可能吧,但通常不会花时间。例如,如果某个服务负责设置NFS,但您还没有配置任何这样的文件系统,那么它将不会占用任何时间或资源。
当然,为了保持整洁,你可能无论如何都想摆脱它们。首先,一定要确定某件事是什么。systemctl list-units在这里很有用,因为在默认情况下,它提供了一个简单的已加载服务列表。Systemd有很多手册页;您可以在apropos systemd中找到它们(如果您没有得到任何输出,请先尝试sudo mandb,无论出于什么原因,有时这在某些发行版上是无法保持的)。其中许多都是编写服务文件的指南;为了严格地将其限制在命令上,请使用apropos -s 1 systemd。
https://unix.stackexchange.com/questions/396260
复制相似问题