gpt4 book ai didi

ubuntu - Upstart 在任何其他进程之前启动启动进程

转载 作者:行者123 更新时间:2023-12-04 18:52:35 28 4
gpt4 key购买 nike

我正在定制在基于 arm 的嵌入式系统上运行的 ubuntu。我没有使用 plymouth (splash) 来隐藏启动消息,而是使用了一个名为 psplash 的自定义可执行文件,它直接写入帧缓冲区。现在我需要确保这个启动过程在任何其他过程之前开始。这个系统有许多不可避免的 Upstart 工作。不管我怎么尝试,在启动画面占据屏幕之前,我总是会从 Upstart 的工作中得到一些消息。
这是我的 psplash 工作:

description "Userspace bootsplash utility"

start on runlevel [2345]

expect fork
kill timeout 60

script
# exec /sbin/psplash
sleep 2
end script

pre-start script
echo "PSPLASH"
/sbin/psplash
sleep 2
end script

为了确保它尽早启动,我在“预启动”中启动了该过程并确保其他作业在延迟后启动,我在“脚本”中添加了 sleep 。

根据 this发布后,我创建了另一项服务,该服务仅在此 psplash 作业之后才强制其他作业开始。但这也不是最优的,因为我需要添加许多在这种情况下卡住的系统级作业。
    #service-psplash-wait.conf

start on (starting alsa-restore
or starting anacron
or starting apport
or starting atd
or starting auto-serial-console
or starting avahi-daemon
or starting binfmt-support
or starting bluetooth
or starting console-setup
or starting console
or starting container-detect
or starting control-alt-delete
or starting cron
or starting cups
or starting dbus
or starting dmesg

)


# We know that we have more than one job that needs to wait for service-a and
# will make use of this service, so we need to instantiate.
instance $JOB

# Needed to make starting the job successful despite being killed
normal exit 2
task

script

status psplash | grep -q "start/running" && exit 0
start psplash || true

# Waiting forever is ok.. upstart will kill this job when
# the service-a we tried to start above either starts or stops
while sleep 3600 ; do :; done

end script

即使 psplash 是第一个启动的进程,它也可能需要一些时间来接管显示。因此,在此期间不应显示其他消息。黑屏没问题。

我能做些什么?

最佳答案

这是相当困难的:]

以下内容应该在引导的早期开始您的工作。够了吗? (这应该没有等待工作)。

description "Userspace bootsplash utility"

start on virtual-filesystems

# adjust expect stanza as needed
exec /sbin/psplash

关于ubuntu - Upstart 在任何其他进程之前启动启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409857/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com