为什么内核挂载文件系统后需要rcS?

为什么内核挂载文件系统后需要rcS?

我使用嵌入式 Linux,我已经编译了没有 initramfs 的内核,并且内核启动正常。但它显示我rcS找不到文件我已将其放入/etc/init.d/rcS并且我的rcS文件看起来像

#!/bin/sh
echo "Hello world"

文件系统被内核挂载后,它会打印Hello world.

任何人都可以告诉/解释为什么需要这个文件以及如何按特定顺序启动这些启动脚本?

我正在将 Raspberry Pi 与 busybox 一起使用,它工作正常,但我陷入了启动阶段。

答案1

/etc/init.d/rcS允许您在启动时运行其他程序。它的典型用途是挂载额外的文件系统(此时仅挂载根文件系统)并启动一些守护进程。

通常rcS是一个 shell 脚本,可以轻松地即时定制。典型的发行版会创建rcS一个简单的脚本,在其中执行进一步的脚本/etc/rcS.d(确切的位置取决于发行版);这允许每个守护进程都用它自己的初始化脚本打包。如果存在,该文件/etc/rc.local也会被执行;rcS它适用于系统管理员编写的命令。

与 init 的传统 SysVinit 实现一起,/etc/init.d/rcS列在/etc/inittabsysinit设置)中。使用 BusyBox,您还可以提供一个inittab(如果该功能已编译),但有一个内置的默认值可以使其读取/etc/init.d/rcS(除其他外)。

答案2

/etc/init.d/rcS 通常启动 /etc/rcS.d/ 中的脚本

这是我的:

$ cat /etc/init.d/rcS
#! /bin/sh
#
# rcS
#
# Call all S??* scripts in /etc/rcS.d/ in numerical/alphabetical order
#

exec /etc/init.d/rc S


$ ls /etc/rcS.d/
README  S25brltty  S37apparmor  S55urandom  S70x11-common

相关内容