BUSCTL(1) | busctl | BUSCTL(1) |
NAME
busctl - 内省与监视 D-Bus 总线
SYNOPSIS
busctl [OPTIONS...] [COMMAND] [NAME...]
描述
busctl 可用于内省与监视 D-Bus 总线
选项
能够识别的命令行选项如下:
--address=ADDRESS
--show-machine
--unique
--acquired
--activatable
--match=MATCH
--size=
--list
--quiet
--verbose
--expect-reply=BOOL
--auto-start=BOOL
--allow-interactive-authorization=BOOL
--timeout=SECS
--augment-creds=BOOL
--user
--system
-H, --host=
-M, --machine=
--no-pager
--no-legend
-h, --help
--version
命令
能够识别的命令如下:
list
status [SERVICE]
monitor [SERVICE...]
capture [SERVICE...]
tree [SERVICE...]
introspect SERVICE OBJECT [INTERFACE]
call SERVICE OBJECT INTERFACE METHOD [SIGNATURE [ARGUMENT...]]
get-property SERVICE OBJECT INTERFACE PROPERTY...
set-property SERVICE OBJECT INTERFACE PROPERTY SIGNATURE ARGUMENT...
help
参数格式
call 与 set-property 命令都接收一个类型标记(SIGNATURE)与多个参数字符串(ARGUMENT)。 有关"类型标记"的详细说明, 参见 Type system chapter of the D-Bus specification[2] 文档的"Type System"小节。 对于简单类型(Basic types), 类型标记(SIGNATURE)后面的每个参数(ARGUMENT)都必须是参数值的字符串表示。 布尔类型真值可以表示为 "true", "yes", "on", "1" ; 布尔类型假值可以表示为 "false", "no", "off", "0" 。 对于数组,先是一个表示数组项数的数字,然后跟着数组中的每一项。 对于变量,先是一个表示变量类型的字符,然后跟着变量的值。 对于字典与结构,直接指定其内容即可。
例如,
s jawoll
是一个简单的字符串 "jawoll" , "s"是类型标记,"jawoll"是参数字符串。
as 3 hello world foobar
是一个字符串数组,包含3个成员,分别是 "hello", "world", "foobar"
a{sv} 3 One s Eins Two u 2 Yes b true
是一个字典数组, 该字典将字符串映射为变量,包含3个成员,分别是: 字符串 "One" 映射到字符串 "Eins" , 字符串 "Two" 映射到32位无符号整数"2", 字符串 "Yes" 映射到布尔真值。
注意, call, get-property, introspect 命令在输出应答时也同样是这个格式。 由于这个格式过于精简不易理解, 所以 call 与 get-property 命令提供了 --verbose 选项用于输出详细的、 易于理解的多行输出格式。
例子
Example 1. 读写属性
下面的两个命令,首先写入一个属性,然后再读取它。 该属性位于 "org.freedesktop.systemd1" 服务的 "/org/freedesktop/systemd1" 对象中, 属性名是 "org.freedesktop.systemd1.Manager" 接口上的 "LogLevel" , 此属性是一个简单的字符串:
# busctl set-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s debug # busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s "debug"
Example 2. 精简输出与详细输出
下面的两个命令,两次读取同一个属性(字符串数组类型), 第一次以精简格式显示, 第二次以详细格式显示:
$ busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment as 2 "LANG=en_US.utf8" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" $ busctl get-property --verbose org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment ARRAY "s" { STRING "LANG=en_US.utf8"; STRING "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"; };
Example 3. 调用方法
下面的命令, 在 "org.freedesktop.systemd1" 服务的 "/org/freedesktop/systemd1" 对象的 "org.freedesktop.systemd1.Manager" 接口上调用了 "StartUnit" 方法, 并且给此方法传递了 "cups.service" 与 "replace" 两个字符串。 而此方法返回了一个对象路径:
# busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager StartUnit ss "cups.service" "replace" o "/org/freedesktop/systemd1/job/42684"
参见
dbus-daemon(1), D-Bus[3], sd-bus(3), systemd(1), machinectl(1), wireshark(1)
NOTES
- 1.
- Libpcap File Format
- 2.
- Type system chapter of the D-Bus specification
- 3.
- D-Bus
跋
本页面中文版由中文 man 手册页计划提供。
翻译人员:金步国
金步国作品集:http://www.jinbuguo.com
中文 man
手册页计划:https://github.com/man-pages-zh/manpages-zh
systemd 231 |