我使用嵌入式 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/inittab
(sysinit
设置)中。使用 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