GNU/Linux >> Linux の 問題 >  >> Linux

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

buildroot の場合、すべてのスクリプトを $path_to_buildroot/output/target/etc/init.d に配置する必要があります ビルド前のイメージ。私の場合、このディレクトリには rcS が含まれています S[0-99]script_name という名前のいくつかのスクリプト。したがって、独自の start\stop スクリプトを作成できます。

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 $?

「ターゲット」フォルダーで fs を変更するのは悪い考えです。これは output/target/ の変更によるものです make clean を生き残れない コマンド。

buildroot のマニュアルでは、正しく行う方法が説明されています

ファイル システムを部分的にオーバーレイするディレクトリをどこかに作成する必要があります。たとえば、この構造体を作成する buildroot ディレクトリに「your-overlay」というディレクトリを作成できます

your-overlay/etc/init.d/<any_file>

次に、defconfig でこのオーバーレイへのパスを設定する必要があります

System configuration > Root filesystem overlay directories

(または、BR2_ROOTFS_OVERLAY を見つけます)

また、このオーバーレイの推奨パスは board/<company>/<boardname>/rootfs-overlay


Linux
  1. Linuxでユーザーグループを作成および削除する方法

  2. 別のユーザーおよびグループとしてファイルを作成しますか?

  3. PostgreSQLでロールを作成および削除する

  1. 外部変数と埋め込みスクリプトを使用してBashスクリプトを作成する方法

  2. 新しいデータベースを作成し、MySQL/MariaDBで使用します

  3. Pam –必要かつ十分な制御フラグ?

  1. Bash-it –スクリプトとエイリアスを制御するためのBashフレームワーク

  2. Ansibleでカスタムファクトを作成して使用する方法

  3. AWSでセキュリティグループ(SG)とネットワークアクセスコントロールリスト(NACL)を作成する方法