Questions tagged «d-bus»

消息总线系统,一种用于进程间通信的简单方法。它还有助于协调流程生命周期。

4
可用的DBus服务列表
是否有可用的DBus服务列表之类的东西? 我偶然发现了一些(如NetworkManager,Rhythmbox,Skype,HAL提供的那些)。 我想知道是否可以找到提供的服务/接口的完整列表。
65 linux  d-bus  ipc 

1
X,Xorg和D-Bus:有什么区别?
在学习在GUI编程中做某些事情的过程中(例如,为应用程序在屏幕上保留空间),我必须了解有关Window Manager(通常是Linux上的X11)的更多信息(我不确定是否还有发行版的,虽然我听说过Wayland,但它还没有实现。 我对编程很陌生,并且没有耐心。所以我只是潜入其中。现在,我正在阅读ICCCM,希望能学到更多。但是,本文档针对的是比我更了解(方式)的公众。因此,我遇到了一些信息,我希望得到一些澄清。 ICCCM 第2节引用: 请注意,在所有者和请求者之间传输的所有数据通常必须在X版本11环境中通过服务器传输。一个客户端不能假定另一个客户端可以打开相同的文件,甚至不能直接通信。另一个客户端可能正在通过完全不同的联网机制与服务器通信(例如,一个客户端可能是DECnet,另一个是TCP / IP)。因此,只有在两个客户明确同意的情况下,才允许传递对数据的间接引用(例如文件名,主机名和端口号等)。 据我了解,X Window Manager是建立在X Server之上的(感谢维基百科)。在上面的引用中:它表示客户端可以使用DECnet或TCP / IP与服务器进行通信。到目前为止,我还以为“服务器”只是一个比喻,现在我怀疑:X服务器是否像“ Web服务器”中那样是服务器?我应该如何理解其功能/定义? 然后,通常会引用X11,Xorg,X Server和/或X Window Manager。令人困惑:X11是否包含Xorg和X Window Manager?如果是这样,那么此X11捆绑包中还有其他东西吗? X还需要鼠标或键盘或任何其他类型的输入:这也是X Server功能的一部分吗?X Window Manager是否严格只照顾显示? 最后,上面的引用还提到了客户端之间是否进行通信:这让我想起了D-Bus,我已经将其用于学习目的。使用D-Bus,您还可以触发窗口事件。这让我对程序之间如何通信感到困惑:* 使用X Server或D-Bus进行交互的程序之间有什么区别?* 可惜的是,这些信息仍然以某种方式仍然晦涩难懂,因此很难学习,但希望您能对此有所启发:)谢谢。

2
可以更改/ etc / machine-id吗?
我克隆了一个磁盘(SSD),并将克隆的磁盘放入另一台计算机。现在,两个系统在中具有相同的值/etc/machine-id。只需编辑/etc/machine-id以更改值有什么问题吗?我可以在系统运行时执行此操作(或需要从Live USB引导)吗? 是systemd-machine-id-setup一个更好的选择? 天真的使用是systemd-machine-id-setup行不通的。我尝试了以下步骤: nano /etc/machine-id (to remove the existing value) systemd-machine-id-setup > Initializing machine ID from D-Bus machine ID. cat /etc/machine-id 新值与旧值相同。
33 systemd  d-bus 

5
dbus:[系统]无法激活服务'org.freedesktop.login1':超时
我在其中一台服务器的系统日志中不断收到以下错误消息: # tail /var/log/syslog Oct 29 13:48:40 myserver dbus[19617]: [system] Failed to activate service 'org.freedesktop.login1': timed out Oct 29 13:48:40 myserver dbus[19617]: [system] Activating via systemd: service name='org.freedesktop.login1' unit='dbus-org.freedesktop.login1.service' Oct 29 13:49:05 myserver dbus[19617]: [system] Failed to activate service 'org.freedesktop.login1': timed out Oct 29 13:49:05 myserver dbus[19617]: [system] Activating via …
25 linux  debian  d-bus  proftpd 

3
文档:Linux会话的体系结构
我正在寻找一份良好的概述文档,以描述现代Linux会话中涉及的守护程序和服务堆栈。尽管已经阅读了有关dbus和的各种文档systemd,但我仍然不了解。 特别是,我正在寻找这些问题的答案(不要回答这些问题,它们只应澄清我正在寻找的文档类型): 登录后,用户会话的根是哪个进程? 应该启动哪些过程,为什么?无论正在启动Gnome,KDE,FVWM还是简单的shell,我都在寻找与桌面无关的答案。 所有这些守护程序起什么作用?他们中的哪一个将独自运行,而这取决于其他人?哪个人应该由谁开始,为什么以及要花多长时间?谁应该维护那个动物园? 我问,因为我发现我有开机后马上运行的守护进程的一个整体动物园:systemd-journald,systemd-udevd,dbus-daemon, systemd-logind。但还不够:除了这些,运行超轻量级PDF查看器zathura 进一步填充我的会话dbus-launch, dbus-daemon,at-spi2-registryd,和at-spi-bus-launcher,后者启动另一个dbus-daemon。他们之前都没有去过那里,也没有被邀请过,但是他们会待在房子周围,给我一种令人毛骨悚然的感觉,直到我注销为止。我确定我在这里遗漏了一些东西... 另一个示例:登录后,我systemd正在使用用户的UID运行,但是我不知道应该怎么做(因为版本206,我认为我不应该将其用作会话管理器,对吗?)。它有一个子进程(sd-pam),但我找不到相关的文档。 他们在做什么?这种设置背后的想法是什么? 为了阐明我的观点:在“过去”时代,足以知道 login将启动我的登录shell(bash执行~/.profile),从那时起,我可以根据情况继续构建会话,也许是启动screen或startx。

1
在登录会话之间重用D-Bus会话
我通过多个登录会话访问计算机。会话的生命周期可以重叠也可以不重叠。就我而言,这些登录会话当前始终通过SSH进行,但我也希望处理本地会话。 有时在这些会话中需要D-Bus,并且为了使用GVFS,我想在这些登录会话中共享相同的D-Bus会话。 推荐的方法是什么?我不想中断我可能不知道的D总线的使用。我考虑过使用 export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id)) 但是(从Ubuntu 12.04开始)这似乎不正确: 这需要一个X会话,但是我的SSH会话可能转发或可能不转发X显示,甚至那些不相同的X会话$DISPLAY; 如果没有可用的X显示,则dbus-launch抱怨“自动启动错误:X11初始化失败。”并且没有启动守护程序; 在dbus-launch那个“男人页面状态--autolaunch的选项被认为是一个内部实现细节(...)。无论如何,没有真正的理由在libdbus实现之外使用它。” dbus-launchD-Bus套件中的或其他工具是否支持自动检测运行dbus-daemon并连接到它?~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}D-Bus是通过X连接启动的,但是如果没有X连接可用,该信息似乎不会存储在任何地方。 我应该拼凑自己的D-Bus会话文件吗?如果可以,我应该在~/.dbus/session-bus目录中使用文件吗?路径/var/lib/dbus/machine-id可靠且可移植吗?
20 session  d-bus 

1
为什么需要dbus?
我最近从系统中删除了dbus(以及consolekit和polkit)。我没有发现任何更改(我以.xinitrc的系统守护进程和每个用户身份运行它)。但是,许多人声称一个人只需要dbus,大多数linux应用程序都在使用它,等等。我的问题是,为什么我需要它?我认为我不知道它到底能做什么。我知道这是一个“消息总线系统”,该进程通过它进行通信,等等。我仍然不知道使用它会得到什么。有人可以给我解释一下,最好是用“来自现实生活”的例子吗?
17 linux  process  d-bus 


5
如何列出dbus服务下的所有对象路径?
这是“可用的DBus服务列表”的后续问题。 以下python代码将列出所有可用的DBus服务。 import dbus for service in dbus.SystemBus().list_names(): print(service) 我们如何列出python服务中的对象路径?可以选择,但答案不涉及python也可以。 我正在使用Ubuntu 14.04
16 python  d-bus  ipc 

1
没有x会话的gnome密钥用法
我的用例是,我有一台无头服务器,可以在该服务器上进行软件开发。我通常为与它的SSH连接启用X11转发,但是无法为连接较慢的遥远位置启用X11转发。 我需要安全的存储和git凭据缓存,因为我经常在树中使用18-20个存储库,因此我将git-credential-gnome-keyring用作git credential.helper,它使用libgnome-keyring进行通信到gnome-keyring-daemon。为了测试解决方案,我安装了一台带有监视器的PC,确认默认情况下该系统上的密钥环有效,然后使用SSH进行了尝试。它与X11转发一起使用,但没有它就无法工作。 在没有X11转发的情况下进行连接时,查询密钥环时会出现以下错误,并且该工具将退回到命令行提示符下: ** (process:18305): CRITICAL **: Error communicating with gnome-keyring-daemon 调查表明,基本问题是gnome-keyring-daemon期望连接使用dbus与之对话。如果没有X11会话,则dbus不会启动,因此,没有用于gnome-keyring-daemon和libgnome-keyring连接的通用dbus总线。 我找到了两个其他解决方案发布给该问题的解决方案,尽管它们都不适合我。 从使用X11的现有会话中获取DBUS端口 手动启动新的DBUS端口 连接到现有DBUS端口时,基本概念是查找现有登录会话的PID,从procfs中转储该PID的环境,在中搜索DBUS_SESSION_BUS_ADDRESS,然后在当前环境中将其导出。由于这是用于发布会话中所有对象正在使用的DBUS总线的变量,因此设置该值将允许会话中的所有对象在公共DBUS总线上进行通信,尽管它是与其他会话相关联的总线。 此处的来源: https : //ubuntuforums.org/showthread.php ? t = 1059023 https://ask.fedoraproject.org/en/question/45246/error-communication-with-gnome-keyring-daemon-in-ssh-会话/ 添加到我的.bashrc的代码在ssh登录时执行: if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] ; then local myPID=`pgrep "(.*session|fluxbox)" | head -n1` if [ -n "$myPID" ] ; then local myVar=`cat /proc/${myPID}/environ …

1
D-Bus身份验证和授权
我正在尝试设置对D-Bus的远程访问,但我不了解身份验证和授权的工作方式(不)。 我有一台D-Bus服务器在抽象套接字上侦听。 $ echo $DBUS_SESSION_BUS_ADDRESS unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 我跑去dbus-monitor看发生了什么。我的测试用例是notify-send hello,当从本地计算机执行时可以工作。 从同一台计算机上的另一个帐户,我无法连接到该总线。 otheraccount$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 dbus-monitor Failed to open connection to session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network …

1
无法启用用户服务。“无法获得D-Bus连接:连接被拒绝”支持
以用户身份运行任何systemd命令时出现此错误: admin@Xroklaus:~ $ systemctl --user list-units Failed to get D-Bus connection: Connection refused 没有用户参数,该命令运行正常。 admin@Xroklaus:~ $ systemctl list-units UNIT LOAD ACTIVE SUB DESCRIPTION proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0-rfkill1.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/rfkil sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0 ... To show all installed …

2
Gnome程序(eog / gnome-terminal)启动缓慢,并产生DBus.Error.NoReply警告
有一段时间,eog并gnome-terminal已开始非常缓慢地在我的(X)的Ubuntu 13.10。我认为其他Gnome工具也受到影响,但我不使用任何其他工具。 现在org.freedesktop.DBus.Error.NoReply每次gnome-terminal启动我都会收到一个错误: **(gnome-terminal:5516):警告**:检索可访问性总线地址时出错:org.freedesktop.DBus.Error.NoReply:没有收到回复。可能的原因包括:远程应用程序未发送答复,消息总线安全策略阻止了答复,答复超时到期或网络连接断开。 并且每次eog开始: **(eog:4996):警告**:检索可访问性总线地址时出错:org.freedesktop.DBus.Error.NoReply:未收到回复。可能的原因包括:远程应用程序未发送答复,消息总线安全策略阻止了答复,答复超时到期或网络连接断开。 (eog:4996):EOG-警告**:无法加载图标:主题中不存在图标“图像加载”图标 我认为这与删除默认情况下启动的某些程序有关,包括at-spi2-registryd我认为属于Gnome的Accessibility Project的程序。 根据dpkg --getselections | grep spi,at-spi2-core仍安装在我的系统上。 我记得做过一些非常棘手/愚蠢的事情,例如用空的echo程序交换一些配置文件或二进制文件以阻止守护程序启动。 如何解决此错误? 是什么导致此错误? Google产生了一些at-spi...相关链接: https://lists.ubuntu.com/archives/ubuntu-accessibility-bugs/2013-August/006261.html https://lists.ubuntu.com/archives/ubuntu-accessibility-bugs/2013-August/006264.html 这可能freedesktop与我遇到的一个相关问题有关nmcli,因此请查看一下:nmcli freedesktop DBus警告和错误。 ltrace -r eog: 0.000000 __libc_start_main(0x41e210, 2, 0x7fff41235b18, 0x45c020, 0x45c0b0 <unfinished ...> 0.000734 bindtextdomain("eog", "/usr/share/locale") = "/usr/share/locale" 0.001297 bind_textdomain_codeset(0x463fff, 0x45c0f6, 1, 0, 65535) = 0x1d59750 0.000863 textdomain("eog") = …

1
用户系统的PulseAudio服务
这个问题没有什么其他的了:我想知道创建要与运行的PulseAudio systemd服务所需的内容systemd --user。 我尝试了几种不同的方法,包括来自Google的各种用户服务,但是我无法在dbus和它所需的其他所有功能之间进行正确的设置。 更新:在图形会话中似乎可以正常工作,但是通过控制台登录时,我仍然与dbus不一致。但是PulseAudio的启动相当可靠,因此我不太担心。

1
如何防止ssh远程登录破坏dbus?
我在KDE下工作的工作站上正在运行openSUSE 11.3,但是我没有root访问权限。默认外壳程序已设置为tcsh。当我登录到工作站并使用时从运行OS X 10.6的MacBook远程登录时ssh,如下所示: ssh -X -C user@workstation.edu 一切正常;但是,一旦完成,每当尝试使用GUI启动任何内容时,都会在工作站会话中收到DBUS错误,不幸的是,包括任务栏面板中的注销对话框。startkde在这些情况下,我已经厌倦了仅出于注销目的而被杀。 在线我找到了很多有关使用ssh连接到现有dbus会话的说明,但是我想做相反的事情,让ssh远程登录会话完全不影响现有dbus会话。 如果我做 ssh -X -C user@workstation.edu dbus-launch konsole 可以,所以只有交互式登录外壳破坏了dbus。我应该如何修改~/.cshrc?请记住,我没有权限修改/etc/cshrc,/etc/login等等。 如果需要,我可以在此处列出这些文件的内容。 更新: 这是一个大的tar文件,其中包含我可以找到的所有脚本: http://dl.dropbox.com/u/17203983/cshrc.tgz
10 ssh  kde  opensuse  tcsh  d-bus 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.