BusyBoxで起動スクリプトを作成および制御する

BusyBoxで起動スクリプトを作成および制御する

BusyBoxでカスタムLinuxカーネルをコンパイルしました。 BusyBoxはinit実行レベルをサポートしません。 BusyBox でカーネルが起動されると、まず BusyBox がinit不要な場合は次のように動作します。/etc/inittabinit/etc/inittabinittab

::sysinit:/etc/init.d/rcS

javaこの部分は私が見るにはかなり明確ですが、ネットワークを起動したり、シリアルポートを作成したり、プロセスを開始するデーモンを管理する方法を知りたいです。その中にあるスクリプトを見ましたが、/etc/init.d/管理方法がわかりません。 .buildroot/dev/consolettyAM0

ベストアンサー1

$path_to_buildroot/output/target/etc/init.dbuildrootの場合、イメージをビルドする前にすべてのスクリプトを配置する必要があります。私の場合、ディレクトリにrcSS [0-99] script_nameという名前の複数のスクリプトが含まれていました。したがって、独自の起動\停止スクリプトを作成できます。

RCS:

#!/bin/sh

# Start all init scripts in /etc/init.d
# executing them in numerical order.
#
for i in /etc/init.d/S??* ;do

     # Ignore dangling symlinks (if any).
     [ ! -f "$i" ] && continue

     case "$i" in
    *.sh)
        # Source shell script for speed.
        (
        trap - INT QUIT TSTP
        set start
        . $i
        )
        ;;
    *)
        # No sh extension, so fork subprocess.
        $i start
        ;;
    esac
done

S40networkを例に挙げましょう。

#!/bin/sh
#
# Start the network....
#

case "$1" in
  start)
    echo "Starting network..."
    /sbin/ifup -a
    ;;
  stop)
    echo -n "Stopping network..."
    /sbin/ifdown -a
    ;;
  restart|reload)
    "$0" stop
    "$0" start
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart}"
    exit 1
esac

exit $?

おすすめ記事