我正在为嵌入式系统制作一个特殊的“安装程序”,我希望内核启动,在设置外围设备的过程中很晚执行一系列操作,然后在没有登录提示的情况下重新启动系统曾经发生过。
我对 init 和运行级别有点熟悉,我认为这是我最容易实现这一目标的方式。我可以在运行我的东西的初始化序列中放置一个脚本(然后在哪里/如何?),然后将机器重新启动吗?
如果重要的话 rootfs 是 debian。
答案1
对于 Debian 7 及更早版本,最简单的选择是将代码放入/etc/rc.local
.它在启动序列的最后运行,在启动到控制台模式时显示登录屏幕之前,或者在启动 X 之前运行。在该脚本退出之前,不会发生任何其他事情,因此如果您最后重新启动系统,您可能看不到登录屏幕。如果这样做,它应该很快就会消失。
我在上面指定了 Debian 版本,因为Debian 将迁移从系统Vinit
到systemd
在下一个主要版本中。虽然 Debian 的未来版本可能仍然允许rc.local
向后兼容,但您确实希望以不同的方式来实现systemd
.但这超出了这个问题的范围。
更广泛地说,嵌入式 Linux 不必遵循桌面 Linux 制定的规则。专用的嵌入式 Linux 发行版允许您自定义启动顺序等工作方式,特别是为了解决您所面临的问题。