BusyBoxバージョンを作成していないシステムを開発しています。私の設定が元のものとまったく一致しないかどうかBusyBoxを再コンパイルしたくありませんが、それ以外の場合、このバージョンではシステムがうまく機能します。実行中のBusyBoxインストールの構成を抽出する方法がわかっている場合(実行中のカーネルと同様)、そうすることになります。
udhcpc
コマンドを呼び出すifup
ためにスイッチを無効にする方法を理解しようとしています。私が使用しているビルドにコンパイルされたデフォルト値を見ることができます。彼らは-R -n -p
。私はこのプロセスがバックグラウンドで進むことを望み、udhcpc_opts -b
inを使用すると/etc/networking/interfaces
この問題は解決されると思います。フォークをバックグラウンドに置いたところ、プロセスは終了しました。ただudhcpc -b
バックグラウンドで無限分岐と呼ぶだけです。
-n
私が入れることでスイッチを無視する方法はありますかudhcpc_opts
?ありがとうございます。
答え1
同じ問題があり、busyboxを再コンパイルしたくなかったため、udhcpcがバックグラウンドで永遠に試みるようにするために「-t 0 -b」フラグを使用したかったのですが、ifupが渡した「-n」フラグを避けることはできませんでした。基本。
私はスーパーハッカーだったので(しかしそれは私にとって効果的でした)、/etc/network/interfacesで次のudhcpc_optsオプションを使用しました:
udhcpc_opts -t 0 -T 10 -A 20 -S &
末尾の "&" は udhcpc をバックグラウンドジョブとして開始するため、 "-b" フラグとほぼ同じですが、コマンドラインに "-n" が指定されていても動作します。
iface
これを行うには、オプションにこのエントリを追加する必要があります。たとえば、次のようになります。
iface eth0 inet dhcp
udhcpc_opts -t 0 -T 10 -A 20 -S &
答え2
動作が次のように動作udhcpc -n -b
するように修正されました。udhcpc -b
固定する~のためビジーボックスのバグ #11691。
したがって、busybox-1.31(まだリリースされていない)からudhcpc_opts -b
期待どおりに動作するはずです。
答え3
デフォルトのスイッチをオーバーライドできないことがわかりました。 udhcpcのデフォルトの呼び出しにスイッチを接続できましたが、バックグラウンドでフォークして-b
失敗したときに終了するスイッチ-n
は相互に排他的ではありません。したがって、バックグラウンドに分岐してもシャットダウン動作は停止しません。
コマンドにスイッチを追加するには、udhcpc_opts
/ etc / network / interfacesファイルのethXセクションにスイッチを追加する必要がありました。
結局のところ、udhcpcプロセスがバックグラウンドに分岐して実行を続けるようにbusyboxを再コンパイルする必要がありました。