问题标签 [dbus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
830 浏览

c - D-Bus GLib 绑定​​——无法让代码脱离实际

我一直在玩 GLib 的 D-Bus 绑定,试图让某些东西(任何东西)工作,但成功非常有限。我一直在尝试编译和运行Ross Burton 的示例代码,但不断遇到新的令人兴奋的困难。

你能帮忙调试这段代码吗,或者失败了,给我指出一些 D-Bus GLib 代码的例子吗?

由于罗斯的代码已经过时,我已经替换了该行

根据他对该文章的评论,但除了更新包含目录以匹配我的盒子上的设置外,没有进行其他更改。

但是,在运行服务器可执行文件时,我收到以下错误:

根据 gdb,此时的堆栈跟踪是

我不确定出了什么问题,或者调试的下一步应该是什么。我想获得一些发送和接收 D-Bus 方法调用消息的基本代码,这样我就可以看到在我的应用程序中应该如何工作。

我正在使用 D-Bus 0.73。

更新:鉴于我没有成功,并且这里没有回应,我目前正在考虑放弃 D-Bus 并寻找其他一些 IPC 机制。

更新 2:最后,我采用了 Unix 命名的套接字方法,这正是我需要它在总共 280 行代码(加上测试代码)中做的事情。

0 投票
1 回答
488 浏览

gnome - Gnome 2.30 中自动挂载的工作流程是什么?

我有一台装有 Fedora 13 的华硕笔记本电脑。我的问题是我连接的任何 USB 存储设备都不会自动挂载。我有另一台装有 Fedora 13 的计算机,它没有问题。

我无法在我的笔记本电脑和其他可用的计算机之间找到任何配置差异。

因此,为了尝试追查问题,我开始寻找有关它应该如何工作的文档。我看过 udev、devkit、hal、dbus、polkit、gnome 等。

我想知道我可以使用哪些事件、日志、配置文件和监视程序来跟踪从我连接 USB 记忆棒到我在 GNOME 中启动并运行一个窗口所发生的事件。

到目前为止,我已经跟踪到 udev 检测到磁盘并创建 /dev/sdb(和分区 1 的 /dev/sdb1),并且有关添加设备的事件作为消息在 dbus 上发送。我可以使用 udisk 手动挂载磁盘,但不能使用 gnome-disk-utility (palmiset)。

自动挂载磁盘涉及许多不同的应用程序,我想找出它在事件链中的哪个位置失败。

0 投票
1 回答
363 浏览

python - 如何使用 dbus 连接 HAL

我正在使用python和dbus。我真正需要的是一种将麦克风的输入输入到 python 程序中,然后从程序中回放的方法。我用谷歌搜索了很多,似乎 pyaudio 可以解决问题,但 pyaudio 不适用于我的 ubuntu 10.04。

我看到的下一个选项是心灵感应。但我也不需要那么大的东西。看到心灵感应如何在 dbus 上工作,我猜想这可能是要走的路。

不幸的是,我无法连接到 Harware Abstraction LAyer 并使用它从我的麦克风获取输入。有什么办法可以做到这一点,还是我应该在其他地方寻找?

0 投票
2 回答
19483 浏览

linux - 如何从命令行发出 dbus 信号

有没有办法使用 dbus-send 或其他东西从命令行发出 dbus 信号?

0 投票
1 回答
5106 浏览

linux - 使用 dbus-send 关闭 Linux

我正在编写一个 Java 应用程序来远程关闭我的 Linux 机器。

桌面应用程序坐下来等待命令发送给它。我曾尝试使用“shutdown -h”,但这需要 sudo 权限并且不是一个选项。然后,我使用以下 dbus-send 解决方案找到了一种无需 sudo 即可关闭的方法:

这工作正常,但我试图弄清楚,使用 dbus-send,是否可以进行类似于“shutdown 3600”的定时关机,这将在 1 小时内关闭计算机?

干杯

伊夫

0 投票
2 回答
679 浏览

x11 - 如何将 X11 应用程序附加到 Dbus

如何让 X11 应用程序监听 DBus 信号。应该启动监听 Dbus 信号的 gmainloop,并启动 X11 应用程序 XEvent 循环。那么有没有一种优雅的方法来做到这一点?还是我必须在另一个线程中运行 gmainloop。

问候,列文

0 投票
2 回答
5780 浏览

python - Python Dbus:如何导出接口属性

在所有 python dbus 文档中都有关于如何导出对象、接口、信号的信息,但是没有关于如何导出接口属性的信息。

任何想法如何做到这一点?

0 投票
1 回答
229 浏览

c - C DBus:调用方法返回字符串时失败

不能请有人告诉我为什么下面的代码在执行时崩溃,(编译正常)它在旋转的 X 环境中向左旋转 90。

0 投票
2 回答
1977 浏览

python - python中的多个d-bus会话总线对象

我编写了一个脚本,它连接到远程计算机上的 d-bus 会话总线,如下所示:

这很好,除了现在我需要能够连接到不同计算机上的多个会话总线。我尝试了以下方法:

但它不起作用。第二次调用 SessionBus 返回与第一次调用相同的对象。IE。在这种情况下,两个对象都指向 192.168.0.1 上的会话总线。似乎只有对 SessionBus 的第一次调用实际上做了任何事情,所有后续调用只返回第一次调用时创建的对象。有谁知道解决这个问题的方法?

0 投票
0 回答
451 浏览

php - 从其他用户那里获取节奏盒信息

我的桌面上运行着 Rhythmbox,我希望能够通过 Web 界面远程控制它。但是,我在访问它时遇到问题,因为rhythmbox-client抱怨尝试访问它的用户(www-data)没有 a) X 会话正在运行,并且 b) 无权访问我的节奏盒 dbus信息。

(rhythmbox-client:13954): Rhythmbox-WARNING **: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.

我在 ubuntu 10.04 上运行 apache、php。通过从不同用户的 php cli 调用 php 脚本也尝试了以下方法(与不同用户一起进入我自己的盒子)

我试过这些方法:

  • 使用“rhythmbox-client --print-playing --no-start --no-resent”从 php 脚本调用 system() 和 exec()
  • 直接在 php 中使用 DBus 以及 python 脚本(使用 system()/exec() 从 php 脚本调用它)
  • 在 C 程序中使用setuid(), setruid(),seteuid()并通过 php 调用它。

我现在很茫然。这甚至可能吗?

[编辑] 我使用了@IvanGoneKrazy 的建议,并从这个类似的问题中获取了环境代码。现在我有这个错误消息的代码:

错误信息: