Chinaunix

标题: [已解决]FreeBSD的HAL+dbus启动两次的问题 [打印本页]

作者: 杜比环绕声    时间: 2007-07-03 15:37
标题: [已解决]FreeBSD的HAL+dbus启动两次的问题
系统Freebsd 6.2 stable 200706,kde-3.5.6_1,rc配置文件均未改动

在rc.conf中添加如下内容后:

dbus_enable="YES"
polkitd_enable="YES"
hald_enable="YES"

在系统启动时,显示开始启动 dbus,polkitd,hald

但是有个问题,就是这三个程序均显示启动两次,大致如下:

  1. start dbus......
  2. start dbus......
  3. (提示一个错误,中文大意是)错误:dbus pid文件已经存在,dbus如果有问题,重新启动dbus。。。。。


  4. start polkitd
  5. start polkitd
  6. start hald
  7. start hald
  8. ...
复制代码




我的疑问就在这里,怎么这三个程序都启动了两次,我大致查了一下相关的配置文件,均未发现重复启动的情况,只是在hald中对前两个进行检测。

如果只是在rc.conf中添加

hald_enable="YES"

启动时显示的都是一个,但是有个运行警告,提示添加dbus_enable和polkitd_enable

上述问题,百思不得其解,热盼解决办法

PS:在pcbsd环境下(freebsd 6.1 stable+kde3.5.4)中,不存在这个问题!

[ 本帖最后由 杜比环绕声 于 2007-7-5 11:04 编辑 ]
作者: 杜比环绕声    时间: 2007-07-03 15:39
以上我描述的情况,不影响kde使用Hal和dbus,U盘和光盘以及照相机可以自动加载,使用正常!
作者: 杜比环绕声    时间: 2007-07-04 11:51
顶上去,分析了dbus和hald的脚本,不存在问题

昨晚在freebsd 6 stable 200705 中运行,也不存在这个问题,着实让人迷惑啊!
作者: macafee    时间: 2007-07-04 14:13
请仔细查看PORTS的UPDATE!你漏了很重要的一步!
作者: 杜比环绕声    时间: 2007-07-04 15:39
原帖由 macafee 于 2007-7-4 14:13 发表
请仔细查看PORTS的UPDATE!你漏了很重要的一步!


能说的详细些么?

[ 本帖最后由 杜比环绕声 于 2007-7-4 15:45 编辑 ]
作者: macafee    时间: 2007-07-04 18:26
让你看就去看,看了你自然就会明白!!现在的年轻人怎么都心浮气燥的?
作者: 杜比环绕声    时间: 2007-07-04 21:02
还请“macafee”指正

如果你说的是把用户添加到“operator”组才能使用HAL这一步,我已经做了,kde环境下使用正常,但是我遍寻UPDATE这个文件,没有找到“启动两次”的说明!
作者: 杜比环绕声    时间: 2007-07-04 21:14
我测试过,当我只使用dbus_enable="YES"的时候,其他两项禁止,重新启动系统,也会出现dbus启动两次的情况。

在root用户下,在启动的情况下,运行 sh    /usr/local/etc/rc.d/dbus的时候,却只是显示一次。

运行 sh   /etc/rc 也是运行一次,但是只要是重新启动系统,就会看到启动两次,第二次还会警告 dbus.pid文件已经存在。

从我了解的原理上分析,rc脚本启动的时候,它分析rc.conf  /defaults/rc.conf 然后对需要运行的rc脚本进行排序,真是想不通为什么会运行两次。

我试着开启其他的服务,却完全正常,即启动一次!
作者: macafee    时间: 2007-07-05 00:23
晕...........我让你看文档为什么就是不去看???
这个问题是由于你升级了XORG7.2所造成的,PORTS的UPDATE中清楚的写着要做mergebase,你为什么不看也不做?
记住!放下心来才能干好活!
作者: 杜比环绕声    时间: 2007-07-05 09:00
原帖由 macafee 于 2007-7-5 00:23 发表
这个问题是由于你升级了XORG7.2所造成的,PORTS的UPDATE中清楚的写着要做mergebase,你为什么不看也不做?
记住!放下心来才能干好活!


多谢macafee兄,问题解决了!

原以为是FreeBSD系统自身的问题,xorg是package安装,没有考虑到xorg带来的影响,运行一遍mergebase.sh之后,脚本在rc.conf中加了下面的一条语句

local_startup="/usr/local/etc/rc.d"

经过测试,dbus,polkitd,hald的启动的确是受这个语句控制。

再次感谢macafee
作者: 杜比环绕声    时间: 2007-07-05 09:11
又进一步看了/etc/defaults/rc.conf这个文件,local_startup的定义是这样的

local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d"

在我的系统中,存在一个/usr/X11R6的软连接,我想这可能就是如上三个rc脚本启动两次的根源。

rc系统启动的时候,把/usr/X11R6/etc/rc.d/dbus和/usr/local/etc/rc.d/dbus当成了两个不同的启动脚本,所以会造成两次启动!
作者: macafee    时间: 2007-07-05 09:16
正确!如果想要更完美一点,可以参考mergebase手工修改/etc/defaults/rc.conf文件!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2