现在通过局域网来上网的人很多,大家都知道,有时候网络不通,开机时激活网络就会出现一个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
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器