Articles of dbus

暂时防止linuxclosures

我有一个备份脚本,每天在我的linux(Fedora 9)计算机上运行。 如果计算机在备份过程中被closures,备份可能会被损坏,所以我想编写一个小脚本,暂时禁用用户重新启动或closures计算机的能力。 脚本不是不可行的,只是让系统的用户知道备份正在进行,而不应该closures。 我已经看到DBus免费桌面电源pipe理规范的禁止方法: http : //people.freedesktop.org/~hughsient/temp/power-management-spec-0.3.html,但只有在系统闲置时才能防止关机不明确地在用户请求。 有没有一种简单的方法在C / Python / Perl或bash中做到这一点? 更新:为了澄清上面的问题,这是一个多用户的机器,但谁通过插入键盘/鼠标顺序使用它。 我不是在寻找一个能够阻止我以root身份对其进行“黑客攻击”的系统。 但是,当我从Gnome / GDM菜单中selectclosures时,脚本会提醒我(或其他用户)备份仍在运行

如何处理与Python的dbus接口的属性?

我即将开始实施mpris 。 但是目前我不确定如何用python–dbus读/写dbus接口的属性。 有没有这样的例子?

MPRIS + Python(dbus):读写属性

我已经检查过这个链接: 如何用python处理dbus接口的属性 。 但是,只列出一个API …但我不知道该API来自哪里。 我刚开始使用dbus(对此很兴奋,说实话^ __ ^只是不太满意我find的文档),我想知道是否可以获得一些示例代码。 我专门为Rhythmbox使用MPRIS,虽然它应该是相同的。 我知道我可以通过以下方式访问和获取他的方法: import dbus bus = dbus.SessionBus() proxy = bus.get_object('org.mpris.MediaPlayer2.rhythmbox','/org/mpris/MediaPlayer2') player = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.Player') playlists = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.Playlists') tracklist = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.TrackList') 不过,我想知道属性。 一些示例代码就足够了:)谢谢!

Linux:如何检测是USB键盘插入和拔出

有没有任何守护进程/工具,这将触发一些信号/事件时,USB键盘插入和从电脑拔出? 我需要知道在我的程序中,当USB键盘插入和拔出。 任何想法如何做到这一点? 问候,Levon

C中的D-Bus教程与wpa_supplicant进行通信

我试图写一些代码来使用DBUS与wpa_supplicant进行通信。 当我在embedded式系统(ARM)中工作时,我想避免使用Python或GLib。 我想知道我是否愚蠢,因为我真的有这样的感觉,就是没有关于D-Bus的清晰文档。 即使是官方的,我要么find太高的文档,要么使用Glib! 我看过的文档: http : //www.freedesktop.org/wiki/Software/dbus 我发现了一篇关于在C: http : //www.matthew.ath.cx/articles/dbus上使用D-Bus的好文章 但是,这篇文章很老,不够完整! 我也find了c ++ – dbus API,但是在这里,我没有find任何文档! 我一直在挖掘wpa_supplicant和NetworkManager源代码,但这真是一场噩梦! 我一直在研究“低级D-Bus API”,但是这并不能告诉我如何从D-Bus消息中提取string参数! http://dbus.freedesktop.org/doc/api/html/index.html 这里有一些我写的testing代码,但我真的很难提取string值。 对不起,长的源代码,但如果有人想尝试它…我的D-Busconfiguration似乎很好,因为它已经从wpa_supplicant捕获“StateChanged”信号,但不能打印状态: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> #include <string.h> #include <dbus/dbus.h> //#include "wpa_supp_dbus.h" /* Content of wpa_supp_dbus.h */ #define WPAS_DBUS_SERVICE "fi.epitest.hostap.WPASupplicant" #define WPAS_DBUS_PATH "/fi/epitest/hostap/WPASupplicant" #define WPAS_DBUS_INTERFACE "fi.epitest.hostap.WPASupplicant" #define WPAS_DBUS_PATH_INTERFACES WPAS_DBUS_PATH […]

作为服务运行时,QtService应用程序无法连接到系统总线

我已经重新编译了用于Windows的集成dbus的 Qt 。 此外,我已经实现了一个QtService应用程序,它在系统总线上注册一个服务和一个对象,如下所示: QDBusConnection::systemBus().registerService("com.mycompany.Configuration"); QDBusConnection::systemBus().registerObject("/com/mycompany/Configuration/MySetting", myObject); 现在,当我使用-e参数(作为常规应用程序运行)运行服务应用程序时,它工作正常,并且dbus-monitor和qdbus –system显示注册的服务和对象。 但是,当我将应用程序作为Windows服务运行时,它不会在系统总线上注册任何内容。 debugging服务给我错误消息 没有连接到D-Bus服务器 当调用registerService(…)和registerObject(…) 。 我已经设置了环境variables: DBUS_SYSTEM_BUS_ADDRESS = autolaunch: DBUS_SYSTEM_BUS_DEFAULT_ADDRESS = autolaunch: 我的system.conf文件: <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <type>system</type> <fork/> <pidfile>/pid</pidfile> <listen>autolaunch:</listen> <policy context="default"> <allow user="*"/> <deny own="*"/> <deny send_type="method_call"/> <allow send_type="signal"/> <allow send_requested_reply="true" send_type="method_return"/> <allow send_requested_reply="true" send_type="error"/> <allow receive_type="method_call"/> <allow […]

D-Bus相当于Windows

任何人都知道Linux / D-Bus的Windows机制? 谢谢