这是 gdbus 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
gdbus - 用于处理 D-Bus 对象的工具
概要
总线 内省 [--system | --session | - 地址 地址] --目标 总线名称
--对象路径 /路径/到/对象 [--xml] [--recurse] [--only-properties]
总线 监控 [--system | --session | - 地址 地址] --目标 总线名称
[--对象路径 /路径/到/对象]
总线 调用 [--system | --session | - 地址 地址] --目标 总线名称
--对象路径 /路径/到/对象 - 方法 org.project.InterfaceName.MethodName
[ - 暂停 秒] ARG1 ARG2...
总线 发出 [--system | --session | - 地址 地址] --对象路径 /路径/到/对象
- 信号 org.project.InterfaceName.SignalName [--目标 唯一总线名称] ARG1 ARG2...
总线 帮助
商品描述
总线 是一个用于处理 D-Bus 对象的简单工具。
指令
内省
打印出远程对象的接口和属性值。 为了使这个工作,
对象的所有者需要实现 org.freedesktop.DBus.Introspectable
界面。 如果 --xml 使用选项,打印返回的自省 XML,
否则会打印一个解析好的表示。 这 --递归 可以使用选项
反省孩子(和他们的孩子等等)和 --only-属性 选项
可用于仅打印具有属性的接口。
监控
监控所有者拥有的一个或所有对象 总线名称.
呼叫
调用远程对象上的方法。 传递给方法的每个参数必须是
指定为序列化 变体 除了字符串不需要显式引号。
返回值打印为序列化 变体 值。
发射
发出信号。 要包含在信号中的每个参数都必须指定为
连载 变体 除了字符串不需要显式引号。
帮助
打印帮助并退出。
BASH 竣工
总线 附带一个 bash 完成脚本来完成命令、目的地、总线名称、
对象路径和接口/方法名称。
示例
这显示了如何内省一个对象 - 请注意每个对象的值
属性显示:
$ gdbus 内省 --system \
--dest org.freedesktop.NetworkManager \
--object-path /org/freedesktop/NetworkManager/Devices/0
节点 /org/freedesktop/NetworkManager/Devices/0 {
接口 org.freedesktop.DBus.Introspectable {
方法:
自省(输出数据);
};
接口 org.freedesktop.DBus.Properties {
方法:
获取(在s界面中,
在 s 道具名称中,
出 v 值);
设置(在 s 界面中,
在 s 道具名称中,
在 v 值中);
GetAll(在s接口中,
出一个{sv}道具);
};
接口 org.freedesktop.NetworkManager.Device.Wired {
信号:
PropertiesChanged(a{sv} arg_0);
特性:
只读 b 运营商 = 假;
只读 u 速度 = 0;
只读 s HwAddress = '00:1D:72:88:BE:97';
};
接口 org.freedesktop.NetworkManager.Device {
方法:
断开();
信号:
状态改变(你 arg_0,
你 arg_1,
你 arg_2);
特性:
只读 u DeviceType = 1;
只读 b 托管 = true;
读写o Ip6Config = '/';
读写 o Dhcp4Config = '/';
读写o Ip4Config = '/';
只读 u 状态 = 2;
读写 u Ip4Address = 0;
只读 u 能力 = 3;
只读 s 驱动程序 = 'e1000e';
读写 s 接口 = 'eth0';
只读 S Udi = '/sys/devices/pci0000:00/0000:00:19.0/net/eth0';
};
};
这个 --递归 和 --only-属性 想要检查所有选项时,选项可能很有用
特定进程拥有的对象:
$ gdbus 内省 --system --dest org.freedesktop.UPower --object-path / --recurse --only-properties
节点 / {
节点/组织{
节点 /org/freedesktop {
节点 /org/freedesktop/UPower {
接口 org.freedesktop.UPower {
特性:
只读 b IsDocked = true;
只读 b LidForceSleep = false;
只读 b LidIsPresent = false;
只读 b LidIsClosed = false;
只读 b OnLowBattery = false;
只读 b OnBattery = false;
只读 b CanHibernate = true;
只读 b CanSuspend = true;
readonly s DaemonVersion = '0.9.10';
};
节点 /org/freedesktop/UPower/Policy {
};
节点 /org/freedesktop/UPower/Wakeups {
接口 org.freedesktop.UPower.Wakeups {
特性:
只读 b HasCapability = true;
};
};
};
};
};
};
以类似的方式, 内省 命令可用于了解有关通知的详细信息
方法:
[...]
接口 org.freedesktop.Notifications {
方法:
GetServerInformation(out s return_name,
out s return_vendor,
out s return_version,
out s return_spec_version);
GetCapabilities(作为 return_caps 输出);
关闭通知(在 u id 中);
通知(在 s app_name 中,
在你的身份证上,
在 s 图标中,
总之,
在s体内,
作为行动,
在 {sv} 提示中,
在我超时,
出来你 return_id);
};
[...]
有了这些信息,就很容易使用 呼叫 命令显示通知
$ gdbus 调用 --session \
--dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications \
--方法 org.freedesktop.Notifications.Notify \
我的应用程序名称 \
42年\
gtk-对话框信息\
“摘要” \
“这是通知的正文”\
[]\
{} \
5000
(uint32 12,)
监控服务上的所有对象:
$ gdbus 监视器 --system --dest org.freedesktop.ConsoleKit
监控来自 org.freedesktop.ConsoleKit 拥有的所有对象的信号
名称 org.freedesktop.ConsoleKit 归 :1.15 所有
/org/freedesktop/ConsoleKit/Session2:org.freedesktop.ConsoleKit.Session.ActiveChanged(假,)
/org/freedesktop/ConsoleKit/Seat1: org.freedesktop.ConsoleKit.Seat.ActiveSessionChanged ('',)
/org/freedesktop/ConsoleKit/Session2: org.freedesktop.ConsoleKit.Session.ActiveChanged (true,)
/org/freedesktop/ConsoleKit/Seat1: org.freedesktop.ConsoleKit.Seat.ActiveSessionChanged ('/org/freedesktop/ConsoleKit/Session2',)
监控服务上的单个对象:
$ gdbus 监视器 --system --dest org.freedesktop.NetworkManager --object-path /org/freedesktop/NetworkManager/AccessPoint/4141
监控 org.freedesktop.NetworkManager 拥有的对象 /org/freedesktop/NetworkManager/AccessPoint/4141 上的信号
名称 org.freedesktop.NetworkManager 归 :1.5 所有
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': },)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': },)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': },)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': },)
发出信号:
$ gdbus 发出 --session --object-path /foo --signal org.bar.Foo "['foo', 'bar', 'baz']"
向特定进程发出信号:
$ gdbus 发出 --session --object-path /bar --signal org.bar.Bar someString --dest :1.42
使用 onworks.net 服务在线使用 gdbus