您尚未登录。

#1 2016-10-06 13:26:48

Hacksign
会员
注册时间: 2012-08-01
帖子: 26

[已解决] DBus的问题

前段时间更新了libdbus的一个东西(好象是替换了),然后系统就出现了各种问题:

1. thunar不能记住窗口大小
2. 有一些通知不能正确的显示或在多块显示请的情况下不能正确的屏幕上显示

看了一下错误,比较严重的是这几个:

hacksign@XSign [12:55:53] : ~ 
>> ps aux|grep -i dbus
dbus       274  0.7  0.0  33288  3848 ?        Ss   12:55   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
hacksign   408  0.0  0.0  15364  3416 ?        Ss   12:55   0:00 /bin/sh /etc/lightdm/Xsession dbus-launch --sh-syntax --exit-with-session awesome
hacksign   469  0.0  0.0  32744  2984 ?        Ss   12:55   0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation
hacksign   537  0.0  0.0  32848  2660 ?        Ss   12:55   0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
hacksign   546  0.0  0.0  32744  2388 ?        Ss   12:55   0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
hacksign   554  0.0  0.0  32744  2484 ?        Ss   12:55   0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
hacksign   571  0.0  0.0  32744  2784 ?        Ss   12:55   0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
hacksign   625  0.0  0.0  32744  2548 ?        Ss   12:55   0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
hacksign   659  0.0  0.0  32744  3044 ?        S    12:55   0:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
hacksign   664  0.0  0.0  32744  3096 ?        S    12:55   0:00 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
hacksign   665  0.0  0.0      0     0 ?        Z    12:55   0:00 [dbus-daemon] <defunct>
hacksign   925  0.1  0.0  32876  2784 ?        Ss   12:55   0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --config-file /usr/share/fcitx/dbus/daemon.conf
hacksign   929  0.0  0.0  30356   240 ?        SN   12:55   0:00 /usr/bin/fcitx-dbus-watcher unix:abstract=/tmp/dbus-EDZ8fANSa9,guid=1aa7c2afa7a6f152c587afc757f5d956 925
hacksign  1115  0.0  0.0  12520  2620 pts/0    S+   12:55   0:00 grep --color=auto -i dbus
hacksign@XSign [12:55:59] : ~ 
>> env|grep -i dbus
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-HJDsxzu5bi,guid=fc0e6ff5c28e6bc8273839b957f5d954
hacksign@XSign [12:56:02] : ~ 
>> ls /tmp/dbus*
No matches for wildcard '/tmp/dbus*'.
fish: ls /tmp/dbus*
         ^

环境用的是lightdm+lightdm-gtk-greeter+awesome
在/tmp目录下找不到DBUS_SESSION_BUS_ADDRESS指定的文件.
thunar也报错找不到这个文件:

>> thunar
Thunar: Failed to initialize Xfconf: Failed to connect to socket /tmp/dbus-HJDsxzu5bi: 拒绝连接

Error creating proxy: 无法连接:拒绝连接 (g-io-error-quark, 39)

各位有什么解决办法么?

最近编辑记录 Hacksign (2016-10-08 18:55:08)

离线

#2 2016-10-06 15:17:41

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,439
个人网站

Re: [已解决] DBus的问题

你是不是手动调用了 dbus-launch?现在用户级的 D-Bus 由 systemd 用户服务启动的,你的 bus 地址跟它不一样所以出问题了。
你不要自己处理 dbus 的事情就好。

在线

#3 2016-10-07 00:59:58

Hacksign
会员
注册时间: 2012-08-01
帖子: 26

Re: [已解决] DBus的问题

依云 说:

你是不是手动调用了 dbus-launch?现在用户级的 D-Bus 由 systemd 用户服务启动的,你的 bus 地址跟它不一样所以出问题了。
你不要自己处理 dbus 的事情就好。

有一些app是需要dbus-launch才能正常工作.
在官网的论坛问了一下,貌似是我升级出问题了.

比如lightdm包,版本是对的,但是文件时不一样的....这个就比较尴尬了...
我先看看是不是有什么文件有pacnew的....

离线

#4 2016-10-07 02:05:57

Hacksign
会员
注册时间: 2012-08-01
帖子: 26

Re: [已解决] DBus的问题

依云 说:

你是不是手动调用了 dbus-launch?现在用户级的 D-Bus 由 systemd 用户服务启动的,你的 bus 地址跟它不一样所以出问题了。
你不要自己处理 dbus 的事情就好。

看了一下systemd的dbus.socket文件,dbus的socket是创建在/run/dbus下的.
而且,如果我用lightdm登陆root的话(root没有启动任何多余的东西,全部是默认的Xorg的东西),DBUS_SESSION_BUS_ADDRESS这个变量是正常的指向/run/dbus/下的.

但是如果用lightdm启动awesome窗口管理器,DBUS_SESSION_BUS_ADDRESS就神奇的指向/tmp/dbus-xxxxxx路径下的一个文件了.

请问这个事什么情况?
awesome --version
显示3.5.9

离线

#5 2016-10-07 02:50:07

Hacksign
会员
注册时间: 2012-08-01
帖子: 26

Re: [已解决] DBus的问题

似乎是lightdm的问题.
验证如下:
1. systemctl disable lightdm
2. 写一个.xinitrc到~下,内容为exec awesome
2. 重启,然后startx
3. awesome启动完毕后,printenv查看环境变量,正确

1. systemctl enable lightdm
2. 删除刚才创建的.xinitrc文件
3. 重启
4. 使用lightdm登陆awesome
5. printenv查看环境变量, DBUS_SESSION_BUS_ADDRESS被不正确的设置为/tmp/dbus-xxxxxx

pacman -Rscn lightdm-gtk-greeter后,重新安装,问题依旧.

看了一下/etc/pam.d/lightdm-greeter.conf(好像是叫这个名,笔记本没电关机了)
里面存在
optional pam_systemd.so这一行.

给跪了....这个怎么破?

最近编辑记录 Hacksign (2016-10-07 02:51:03)

离线

#6 2016-10-07 12:03:32

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,439
个人网站

Re: [已解决] DBus的问题

不要用 dbus-launch。
你用 htop 看看 awesome 的环境变量呢?

在线

#7 2016-10-07 16:13:59

Hacksign
会员
注册时间: 2012-08-01
帖子: 26

Re: [已解决] DBus的问题

依云 说:

不要用 dbus-launch。
你用 htop 看看 awesome 的环境变量呢?

目前因为DBUS_SESSION_BUS_ADDRESS的值不对,所以必须用dbus-launch才能使某些软件正常工作.
已经验证在正确设置了这个值之后,所有功能正常.

用htop -p awesome查看awesome的环境变量,确认DBUS_SESSION_BUS_ADDRESS是错误的值:

htop

正确的值如下:

hacksign@XSign [16:10:35] : ~ 
>> systemctl --user show-environment
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DISPLAY=:0
HOME=/home/hacksign
JOURNAL_STREAM=8:14754
LANG=en_US.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE=zh_CN.UTF-8
LC_MESSAGES=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LOGNAME=hacksign
MAIL=/var/spool/mail/hacksign
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
SHELL=/usr/bin/fish
USER=hacksign
XAUTHORITY=/home/hacksign/.Xauthority
XDG_RUNTIME_DIR=/run/user/1000

离线

#8 2016-10-07 16:42:27

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,439
个人网站

Re: [已解决] DBus的问题

你是在哪里 dbus-launch 的?
你知道你的 awesome 是怎么启动的吗?

在线

#9 2016-10-07 20:11:00

Hacksign
会员
注册时间: 2012-08-01
帖子: 26

Re: [已解决] DBus的问题

依云 说:

你是在哪里 dbus-launch 的?
你知道你的 awesome 是怎么启动的吗?

看了一下
/usr/share/xsession/awesome.desktop

这个文件还是旧版本的,里面使用的是dbus-launch启动的awesome.
删掉,重新安装一下awesome就解决了.

离线

页脚