BusyBoxビルドを作成していないシステムで作業しています。私の構成が元の構成と完全に一致せず、これに加えてシステムがこのビルドで十分に機能していることを恐れて、BusyBoxを再コンパイルしたくありません。実行中のカーネルのように実行中のBusyBoxインストールの構成をプルする方法を知っていれば、これを行うように動揺する可能性があります。
udhcpc
コマンドからifup
を呼び出すために使用されるスイッチを無効にする方法を理解しようとしています。使用しているビルドにコンパイルされたデフォルトを確認できます。それらは-R -n -p
です。このプロセスをバックグラウンドに分岐させたいので、udhcpc_opts -b
で/etc/networking/interfaces
を使用するとこの問題が解決すると思いました。フォークをバックグラウンドに移動すると、プロセスが強制終了します。 udhcpc -b
を呼び出すだけで、バックグラウンドに無期限にフォークします。
-n
に入れることができるものを介してudhcpc_opts
スイッチをオーバーライドする方法はありますか?ありがとうございました。
同じ問題があり、busyboxを再コンパイルしたくなく、次のフラグを使用したいと考えていました。
スーパーハックとして(しかしそれは私にとってはうまくいきました)、私は/ 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 &
デフォルトのスイッチを上書きできないことがわかりました。 udhcpcのデフォルトの呼び出しにスイッチを追加することはできましたが、バックグラウンドに分岐するスイッチ-b
と失敗時に終了するスイッチ-n
は相互に排他的ではありません。したがって、バックグラウンドにフォークしても、既存の動作は停止しません。
コマンドにスイッチを追加するには、/ etc/network/interfacesファイルのethXstanzeのにudhcpc_opts
を追加する必要がありました。
最終的には、udhcpcプロセスがバックグラウンドにフォークして実行を継続できるように、busyboxを再コンパイルする必要がありました。
udhcpc -n -b
の動作が修正され、 busyboxバグ#11691 の fix でudhcpc -b
のように動作するようになりました。
したがって、busybox-1.31(現時点ではまだリリースされていません)から始めて、udhcpc_opts -b
は期待どおりに機能するはずです。