現在通過局域網來上網的人很多,大家都知道,有時候網絡不通,開機時激活網絡就會出現一個Bringing up interface eth0:然後就得等上半天才出現一個Failed,ctrl-c也沒用,實在是難得等,有初學者剛遇到這情況還以為系統壞了,等不了一會就reset,然後就去bbs問 :).川大的校園網也破,網絡不通是常事,今天無聊,就決定解決這問題.呵呵,以前就想解決,先是到Linuxforum的內核版去問高手,沒人回答,後來又是打開/etc/init.d/network,可看文件那麼長,馬上就放棄了.今天決定拼了.
用文本編輯器打開/etc/init.d/network,看到這一行:
action $"Bringing up interface $i: " ./ifup $i boot
呵呵,就是用這個來激活etho的,於是打命令
which ifup,得知是/sbin/ifup,打命令ifup eth0 boot,果然是等半天.
file /sbin/ifup,得知這也是個bash腳本文件,於是打開查看,找到一行:
if [ -x /sbin/dhcpcd ] && /sbin/dhcpcd ${DHCPCDARGS} ${DEVICE} ; then
呵呵,網絡不通時等半天就是在等通過dhcp服務來獲取ip,看來要找的就是這行了.
打dhcp --help看幫助,看到個Usage: dhcpcd [-dknrBCDHNRTY] [-l leasetime] [-h hostname] [-t timeout]
哈哈,有個-t timeout,爽,man dhcpcd看看,原來默認是等60秒,呵呵,我以前一直覺得是等兩三分鐘呢.這下容易了,修改ifup文件,在運行/sbin/dhcpcd的那行前加個
DHCPCDARGS="${DHCPCDARGS} -t 5" 應該就行了,我加在了
if [ "${PEERDNS}" = "no" ]; then
PUMPARGS="${PUMPARGS} -d"
DHCPCDARGS="${DHCPCDARGS} -R"
fi
這一段後面,版面整潔些 :)
修改完了後保存,再打命令service network restart,呵呵,只等5秒鐘就出現Failed了,重啟,開機時激活網卡也是只用等5秒了.搞定 :)
總結,要修改激活網卡的等待時間,修改/sbin/ifup文件,在
echo -n $"Determining IP information for ${DEVICE}..."這一行前面加下面一行
DHCPCDARGS="${DHCPCDARGS} -t 5"
其中的-t 5就表示只等5秒.
本文在redhat7.3上通過,initscripts版本為6.67-1.
胡正
2002.9.4
http://forlinux.yeah.net
[email protected]