Linuxサービスの応答性(サービスの呼び出しとデフォルトのDHCPudhcpc
関連)は、プロンプトにログインする前と後で異なります。/etc/init.d/S40network
ip up
udhcpc
/etc/init.d/rcS
(起動順序)で呼び出されると、udhcpc
IPアドレスは割り当てられません。
udhcpc: no lease, failing
しかし、一度rootアカウントでログインS40network restart
したらudhcpc
。
これは/etc/inittab
正常で基本的なことです。
# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <[email protected]>
#
# Note: BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id == tty to run on, or empty for /dev/console
# runlevels == ignored
# action == one of sysinit, respawn, askfirst, wait, and once
# process == program to run
# Startup the system
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw /
::sysinit:/bin/mkdir -p /dev/pts
::sysinit:/bin/mkdir -p /dev/shm
::sysinit:/bin/mount -a
::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS
# Put a getty on the serial port
ttyPS0::respawn:/sbin/getty -L ttyPS0 0 vt100 # GENERIC_SERIAL
# Stuff to do for the 3-finger salute
#::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
これをどのように説明できますか?
答え1
私はあなたと同じ問題がありました。起動中に失敗しましたが、後で手動で呼び出すと正しく機能します。さまざまなログの確認中にインターフェイスが表示されたときにudhcpcが初期化されているようで、最初のいくつかの結果が実際にインターフェイスを介して発行されないことに気づきました。
理想的には、インターフェイスが安定した後にのみudhcpcが起動されるようにすることをお勧めしますが、これを達成する方法がわからないため、udhcpcの試行回数を増やしました。通常、4〜5回試行後にIPを取得しますが、極端なケースを処理するために試行回数を10回に増やしました。
以下の2行目を追加してください。/etc/network/interfaces
iface eth0 inet dhcp
udhcpc_opts -t 10 #sets max retries to 10
#rest of config params