web-dev-qa-db-ja.com

ファイルシステムがカーネルによってマウントされた後にrcSが必要なのはなぜですか?

組み込みLinuxを使用していますが、initramfsを使用せずにカーネルをコンパイルしましたが、カーネルは正常に起動しています。しかし、rcSファイルが見つからないことを示しています。/etc/init.d/rcSに入れましたが、rcSファイルは次のようになります。

#!/bin/sh
echo "Hello world"

ファイルシステムがカーネルによってマウントされた後、ファイルシステムはHello worldを出力します。

このファイルが必要な理由と、それらの起動スクリプトを特定の順序で開始するにはどうすればよいかを誰かに教えて説明できますか?

私はbusyboxでRaspberryPiを使用していますが、正常に動作しますが、起動時にスタックします。

3

/etc/init.d/rcSを使用すると、起動時に追加のプログラムを実行できます。その典型的な使用法は、追加のファイルシステムをマウントし(その時点でルートファイルシステムのみがマウントされます)、いくつかのデーモンを起動することです。

通常、rcSはシェルスクリプトであり、その場で簡単にカスタマイズできます。一般的なディストリビューションでは、rcS/etc/rcS.dでさらにスクリプトを実行する単純なスクリプトにします(正確な場所はディストリビューションによって異なります)。これにより、各デーモンを独自のinitスクリプトでパッケージ化できます。ファイル/etc/rc.localは、存在する場合はrcSによっても実行されます。これは、システム管理者によって作成されたコマンドを対象としています。

Initの従来のSysVinit実装では、/etc/init.d/rcS/etc/inittabsysinit設定)にリストされます。 BusyBoxを使用すると、inittab(機能がコンパイルされている場合)を指定することもできますが、(とりわけ)/etc/init.d/rcSを読み取るようにする組み込みのデフォルトがあります。

/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
1
Chris Montanaro