追加読書

追加読書

256MBのRAMと4GBのeMMCを備えたBeagleboneブラックベースのカスタムボードを持っています。

Linux-3.12からLinux-4.4に、busybox-1.20.2からbusybox-1.26.2にアップグレードしました。
これで、busybox-1.26.2にはbusybox-1.20.2になかった問題が表示されます。

最後のinitスクリプトの1つに次のコードを追加しました。

if [ -f /home/ankur ] ; then
    count=50
    rm /home/ankur
    echo "----Check Whoami----"
    whoami  #prints root
    reboot
    echo "--------------------"
    while [ true ]
    do
       count=$((count - 1 ))
       echo "Count = $count"
       if [ $count -le 0 ];then
            break;
       fi
       echo "Sleep 1"
       sleep 1
    done
fi

ファイルをタッチし/home/ankurてボードを再起動しました。
システムは再起動されませんでしたが、カウンタがゼロに低下し、他の初期化スクリプトが実行され、次にボードが再起動することが観察されました。

したがって、busyboxはシグナルを受け取りますが、rebootinitスクリプトが実行された後にのみ処理するようです。

reboot今私の質問は、すべての初期化スクリプトが完了する前にボードに入る方法があるかどうかということです。この再起動ブロックを無効にするbusybox設定はありますか?

reboot -f(initを経ずに強制的に再起動する)は機能しますが、停止スクリプトも実行する必要があるため使用できません。

答え1

そのため、busyboxに再起動するように指示されたようですが、initスクリプトが実行された後にのみ処理されます。

はい、これはinitBusyBoxがどのように機能するかです。いいえ、設定できません。プログラムを変更して再構築する必要があります。

追加読書

関連情報