LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 817|回复: 5

Apache2 引起的网络挂载冲突

[复制链接]
发表于 2005-8-12 11:09:07 | 显示全部楼层 |阅读模式
硬件配置:

Processor : Intel Pentium III 733
Memory : Samsung PC-133 256MiB x 2
Graphic : nVIDIA GeForce 3 Ti
Network : D-Link DFE-530TX
HDD : Seagate ST380011A 80GiB x 2
Sound : Creative Sound Blaster Vibra 16
Mouse : Microsoft IntelliMouse Explorer 4.0
Keyboard : ViewSonic KMB-KU-206SCH USB
Monitor : Samsung SyncMaster 753DF
Combo : Samsung DVD/CDRW 52x


系统平台:

Gentoo Linux (Kernel 2.6.12-gentoo-r6)
Apache 2.0.54-r8


冲突症状:

起动引导阶段出现如下提示:

bringing eth0 up

SIOCSIFADDR: No such device
eth0: unknown interface: No such device
SIOCSIFBRDADDR: No such device
eth0: unknown interface: No such device
SIOCSIFNETMASK: No such device                        [!!]

* ERROR: Problem starting needed services.
*               "netmount" not started


原因分析:

由于出错提示在系统上配置了HTTP服务后产生, 所以初部断定是加载 apache2 产产生的问提, 将 apache2 从起动自动加载的列表中删除:

rc-update del apache2

重新引导症状消示, 好了出错的根源已经找到, 下面来着手解决.

在 X 中检查网络设备状态:

ifconfig

eth0 设备运行正常, 手动挂载网络:

/etc/init.d/netmount start

网络被成功起用了, 难到是加载时机的关系?

是的! 我仔细对比了一下出错和正确起动时 in scripts 的执行顺序, 发现关键在于 coldplug, 它的加载情况直接关系到网络设备的起动. 在一般情况下, init scripts 执行顺序是按 "/etc/init.d/" 文件夹内的字母顺序 (a-z) 来依次执行的, coldplug > netmount 因此这样的起动不会发生异常; apache2 > coldplug 所以 apache2 的 init scripts 优先级较高, 会优先被执行.

我简单研究了一下 "/etc/init.d/apache2", 其中的 depend() {} 引起了我的注意, 其中的 need 限定符指派了 net 的依赖关系, 查了一下手册, 的确如此! apache2 起动是依赖性得起动了 net 而此时 coldplug 还还未被加载, 所以网络设备起动必定失败.


解决方法

好了, 问题原因基本已经说明, 要解决问题其实非常容易了, 增加 apache2 对 coldplug 的起动依赖, 然后再起动网络设备 (net) 便可正常工作了:

depend() {
need coldplug net
...
}

注意, 请在 need 中增加依赖, 因为它将优先于 before, ues, after 中的程序, 而被更早的触发.

欢迎大家一起交流
http://www.ruly.cn/
发表于 2005-8-12 15:18:17 | 显示全部楼层
如果安装了coldplug 是不是就不会出问题了啊
回复 支持 反对

使用道具 举报

发表于 2005-8-12 15:50:24 | 显示全部楼层
apache怎么可能会先于coldplug启动?手册上写的很清楚,如果要使用coldplug,应该加到boot里,而不是default,楼主是把coldplug加到default里了才会出现这种错误吧?

其实很简单,"rc-update add coldplug boot" 就什么问题都没有了
回复 支持 反对

使用道具 举报

发表于 2005-8-12 16:00:17 | 显示全部楼层
应该是搞错runlevel了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-13 00:52:24 | 显示全部楼层
的确是我搞错了... 把coldplug加到default了, 装的时候自己写了一个脚本自动安装的, 写脚本的时候有些命令重复出现的就粘贴了, 出错了, 黑...
不过这样一来对这些程序到时有了进一步了解, 感谢大家提点.
回复 支持 反对

使用道具 举报

发表于 2005-8-13 01:57:51 | 显示全部楼层
不管怎样---支持原创--支持分享经验。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表