web-dev-qa-db-ja.com

BusyBoxのifupで使用されるudchcpフラグのオーバーライド

BusyBoxビルドを作成していないシステムで作業しています。私の構成が元の構成と完全に一致せず、これに加えてシステムがこのビルドで十分に機能していることを恐れて、BusyBoxを再コンパイルしたくありません。実行中のカーネルのように実行中のBusyBoxインストールの構成をプルする方法を知っていれば、これを行うように動揺する可能性があります。

udhcpcコマンドからifupを呼び出すために使用されるスイッチを無効にする方法を理解しようとしています。使用しているビルドにコンパイルされたデフォルトを確認できます。それらは-R -n -pです。このプロセスをバックグラウンドに分岐させたいので、udhcpc_opts -b/etc/networking/interfacesを使用するとこの問題が解決すると思いました。フォークをバックグラウンドに移動すると、プロセスが強制終了します。 udhcpc -bを呼び出すだけで、バックグラウンドに無期限にフォークします。

-nに入れることができるものを介してudhcpc_optsスイッチをオーバーライドする方法はありますか?ありがとうございました。

2
Matt Minga

同じ問題があり、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 &
3
thepyper

デフォルトのスイッチを上書きできないことがわかりました。 udhcpcのデフォルトの呼び出しにスイッチを追加することはできましたが、バックグラウンドに分岐するスイッチ-bと失敗時に終了するスイッチ-nは相互に排他的ではありません。したがって、バックグラウンドにフォークしても、既存の動作は停止しません。

コマンドにスイッチを追加するには、/ etc/network/interfacesファイルのethXstanzeのにudhcpc_optsを追加する必要がありました。

最終的には、udhcpcプロセスがバックグラウンドにフォークして実行を継続できるように、busyboxを再コンパイルする必要がありました。

1
Matt Minga

udhcpc -n -bの動作が修正され、 busyboxバグ#11691fixudhcpc -bのように動作するようになりました。

したがって、busybox-1.31(現時点ではまだリリースされていません)から始めて、udhcpc_opts -bは期待どおりに機能するはずです。

1
Andrey