systemd 启动到实际显示之间有 25 秒

systemd 启动到实际显示之间有 25 秒

我正在尝试减少运行 Debian Stretch 的 Beaglebone ( 4.14.32-ti-r42 #1 SMP Thu Apr 5 23:13:09 UTC 2018 armv7l GNU/Linux) 的启动时间,以在其 LCD 上显示本地 HTML 页面。

到目前为止,我所做的每项分析都表明启动时间 <25 秒,但显示 HTML 页面仍然需要 45 秒以上。

systemd-analyze
    Startup finished in 6.158s (kernel) + 17.082s (userspace) = 23.240s

systemd-analyze blame
     22.762s dev-mmcblk1p1.device
     12.823s [email protected]
      2.613s systemd-udev-trigger.service
      2.301s systemd-logind.service
      1.874s sysstat.service
      1.848s networking.service
      1.431s bb-wl18xx-wlan0.service
      1.430s ssh.service
      1.186s generic-board-startup.service
      1.082s connman.service
       891ms avahi-daemon.service
       859ms systemd-journald.service
       798ms udhcpd.service
       639ms systemd-udevd.service
       491ms systemd-timesyncd.service
       464ms systemd-random-seed.service
       449ms systemd-tmpfiles-setup-dev.service
       415ms systemd-user-sessions.service
       363ms rsyslog.service
       310ms systemd-sysctl.service
       304ms sys-fs-fuse-connections.mount
       302ms systemd-update-utmp-runlevel.service
       302ms systemd-tmpfiles-setup.service
       269ms sys-kernel-debug.mount
       269ms hostapd.service
       252ms sys-kernel-config.mount
       249ms systemd-modules-load.service
       230ms systemd-backlight@backlight:backlight.service
       221ms systemd-journal-flush.service
       215ms dev-mqueue.mount
       205ms kmod-static-nodes.service
       205ms systemd-update-utmp.service
       199ms [email protected]
       160ms systemd-remount-fs.service
        47ms postgresql.service

systemd-analyze critical-chain
graphical.target @14.388s
└─multi-user.target @14.383s
  └─postgresql.service @14.326s +30ms
    └─[email protected] @3.885s +10.382s
      └─basic.target @3.639s
        └─sockets.target @3.639s
          └─dbus.socket @3.639s
            └─sysinit.target @3.635s
              └─systemd-backlight@backlight:backlight.service @12.982s +205ms
                └─system-systemd\x2dbacklight.slice @12.943s
                  └─system.slice @700ms
                    └─-.slice @614ms

HTML 页面服务

我创建的在 LCD 上加载页面的过程是at-gui.service

[Unit]
Description=Start GUI

[Service]
ExecStart=/bin/bash -lc 'startx'

[Install]
WantedBy=basic.target

此进程启动 OpenBox,它被配置为加载显示 HTML 页面的浏览器。

启动时间

启动后 27 秒左右,LCD 显示亮度发生一些变化(可能表明 Openbox 已启动?)。显示 HTML 页面需要 48 秒。

一个可能的开始

  • 该项目[email protected]需要 10 秒以上才能启动。我需要它(我需要访问 Postgres 数据库),但是不是在显示第一页之前。有没有一个更精简的等价物[电子邮件受保护]只是为了运行 Postgres 数据库?

主要问题

  • 如何看出额外的约 25 秒去哪儿了?
  • 如何预先加载 HTML 页面的显示?

答案1

回答你的第一个问题:

at-gui.serviceType=simple(默认),所以它被认为是开始了该过程一开始bash。因此,无论显示有用的内容实际花费的时间,systemd 都不会计算在内。

我不明白你的第二个问题,无论如何,它可能应该单独问。

相关内容