udhcpc はどのように実行され、どのように変更されますか?

udhcpc はどのように実行され、どのように変更されますか?

私は組み込みシステムで作業しており、DHCP クライアントとして udhcpc を使用しています。次のパラメータで実行されているようです。

/usr/share/udhcpc # ps | grep dhcp 5366 root 2432 S udhcpc -R -b -p /var/run/udhcpc.eth0.pid -i eth0

パラメータを変更したり、独自の DHCP クライアントを実行したりしたいと考えています。調べたところ、ifup と /etc/network/interfaces に関係があると思われます。

iface eth0 inet dhcp

しかし、DHCP クライアントを変更する方法がわかりません。

私が知りたいのですが

  1. パラメータをudhcpcに変更する方法、および
  2. udhcpcを強制終了せずに独自のDHCPクライアントを実行できるかどうか

ありがとう!

答え1

あなたのシステムは、 をベースにした Debian の軽量バージョン/バリエーションのようですbusybox

busybox通常、リカバリ メディア、またはリソースが制限されている組み込みシステムに使用されます。

パラメータを変更する場合は、udhcpc自動的に呼び出すことができます。

次のように変更できます/etc/network/interfaces:

iface eth0 inet manual
   pre-up /sbin/udhcpc -R -b -p /var/run/udhcpc.eth0.pid -i eth0

udhcpc別の DHCP クライアントを実行する場合は、それをインストールする必要がありますが、他のインターフェイスがない限り、切り替える必要があります。

udhcpcは の一部であるためbusybox、作業環境を提供するグローバル バイナリへのリンクに過ぎず、DHCP クライアントを切り替えてもスペースは節約されないことに注意してください。

答え2

Martin Trenkmann が提案した解決策は、私の環境では機能しませんでした (udhcpc_opts を使用)。ただし、私のシステムでは、次の行を追加すると/etc/network/interfaces機能しました。

auto eth0
iface eth0 inet dhcp
        hostname myhostname

これにより、BusyBox は次を実行します:

$ ps aux| grep dhc
 1685 root     /sbin/udhcpc -n -p /run/udhcpc.eth0.pid -i eth0 -x hostname:myhostname

(発見場所https://wiki.alpinelinux.org/wiki/Udhcpc

答え3

パラメータをudhcpcに変更するにはどうすればいいですか?

これに使えますudhcpc_opts

iface eth0 inet dhcp
  udhcpc_opts -t 10
  ...

上記の例からわかるのはudhcpcリースを取得するには最大 10 回試行する必要があります。

関連情報