现在通过局域网来上网的人很多,大家都知道,有时候网络不通,开机时激活网络就会出现一个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
forlinux@263.net