BUSCTL

中文man手册

BUSCTL

NAME
SYNOPSIS
æè¿°
é项
å½ä»¤
åæ°æ ¼å¼
ä¾å
åè§
NOTES
è·

NAME

busctl - åçä¸çè§ D-Bus æ»çº¿

SYNOPSIS

busctl [OPTIONS...] [COMMAND] [NAME...]

æè¿°

busctl å¯ç¨äºåçä¸çè§ D-Bus æ»çº¿

é项

è½å¤è¯å«çå½ä»¤è¡é项å¦ä¸ï¼

--address=ADDRESS

è¿æ¥å° ADDRESS æå®çæ»çº¿ï¼ è䏿¯é»è®¤çæ»çº¿(æ è®ºæ¯ --system ç³»ç»æ»çº¿è¿æ¯ --user ç¨æ·æ»çº¿)ã

--show-machine

å¨ä½¿ç¨ list å½ä»¤æ¾ç¤ºæ»çº¿ä¸çææ peer å表æ¶ï¼ é¢å¤æ¾ç¤ºä¸ä¸ª"MACHINE"åï¼ææå¶æå±å®¹å¨çåç§°ãåè§ systemd-machined.service(8) æåã

--unique

å¨ä½¿ç¨ list å½ä»¤æ¾ç¤ºæ»çº¿ä¸çææ peer å表æ¶ï¼ä»æ¾ç¤º ":number.number" æ ¼å¼ç"å¯ä¸å"(UniqueName)ã

--acquired

å¨ä½¿ç¨ list å½ä»¤æ¾ç¤ºæ»çº¿ä¸çææ peer å表æ¶ï¼ä¸ --unique é项æ- £å¥½ç¸åï¼ ä»æ¾ç¤º"æè¯»å"(well-known name)ã

--activatable

å¨ä½¿ç¨ list å½ä»¤æ¾ç¤ºæ»çº¿ä¸çææ peer å表æ¶ï¼ 仿¾ç¤ºå½åæªè¢«æ¿æ´»å¹¶ä¸å¯ä»¥å¨è¢«è®¿é®æ¶èªå¨æ¿æ´»ç peer ã

--match=MATCH

å¨ä½¿ç¨ monitor å½ä»¤çè§å·²äº¤æ¢çæ¶æ¯æ¶ï¼ 仿¾ç¤ºä¸ MATCH å¹éçæ¶æ¯ã åè§ sd_bus_add_match(3)

--size=

å¨ä½¿ç¨ capture å½ä»¤æè·å·²äº¤æ¢çæ¶æ¯æ¶ï¼ æå®å许æè·çæå¤§æ¶æ¯å°ºå¯¸("snaplen")ï¼ é»è®¤å¼æ¯ 4096 åèã

--list

å¨ä½¿ç¨ tree å½ä»¤æ¾ç¤ºå¯¹è±¡è·¯å¾æ¶ï¼ ä¸ä»¥æ å½¢ç¼©è¿æ¾ç¤ºï¼èæ¯ä»¥å¹³éºåè¡¨çæ ¼å¼æ¾ç¤ºã

--quiet

ä¸ call å½ä»¤è¿ç¨ï¼ç¦æ¢æ¾ç¤ºåºçæ¶æ¯ã 注æï¼ éè¯¯æ¶æ¯ä¾ç¶ä¼è¢«æ¾ç¤ºåºæ¥ï¼å¹¶ä¸ä¾ç¶å¯ä»¥ç¨è¿åå¼å¤ææè´¥ã

--verbose

ä¸ call æ get-property å½ä»¤è¿ç¨ï¼ è¡¨ç¤ºä»¥è¯¦ç»æ¨¡å¼æ¾ç¤ºè¾åºã

--expect-reply=BOOL

ä¸ call å½ä»¤è¿ç¨ï¼ 设置æ¯å¦çå¾è¢«è°ç¨çæ¹æ³æ§è¡å®æã "yes" 表示ç徿¹æ³æ§è¡å®æå¹¶ä¸è¿ååºçæ°æ®ï¼ ç¶å busctl å°è¿åä¸ä¸ªå¯ç¨äºå¤ææ¹æ³æ§è¡æè´¥çè¿åç ã "no" 表示è°ç¨æ¹æ³ä¹åä¸ç- å¾å¶æ§è¡å®æä¹ä¸æ¾ç¤ºåºçæ°æ®ï¼ èæ¯ç´æ¥éåºï¼å¹¶ä¸ä¸è¿åææä¹çè¿åç ã å¦æåªæ¯æ³å±è½åºçæ°æ®ï¼ åºè¯¥ä½¿ç¨ --quiet é项ã é»è®¤å¼ä¸º "yes"

--auto-start=BOOL

ä¸ call å½ä»¤è¿ç¨ï¼ 设置æ¯å¦åºè¯¥éå«çå¯å¨å½åå°æªè¿è¡ã 使¯è¢«é置为èªå¨å¯å¨çæå¡ã é»è®¤æ¯ "yes"

--allow-interactive-authorization=BOOL

ä¸ call å½ä»¤è¿ç¨ï¼ 设置æå¡å¨æ§è¡æä½æ¶ï¼ æ¯å¦åºè¯¥å¼ºå¶è¿è¡äº¤äºå¼ææ(å¨å®å¨çç¥å·²éç½®çæ¶å)ã é»è®¤æ¯ "yes"

--timeout=SECS

ä¸ call å½ä»¤è¿ç¨ï¼ 设置çåæ¹æ³å®æçæå¤§ç§æ°ã 注æï¼æ- ¤å¤çè¶æ¶è®¾ç½®å¯¹ --expect-reply=no æ æã å¯ä½¿ç¨æç¡®çæ¶é´åä½åç¼ï¼ us, ms, s, min, h, d, w, month, y ã é»è®¤å¼æ¯"25s" (注æï¼è®¾ä¸º"0"ä¹çä»·äº"25s")ã

--augment-creds=BOOL

设置 list/status å½ä»¤æ¥åçåæ®æ°æ® æ¯å¦åºè¯¥è¢«æ©å±ä¸ºå嫿¥èª /proc çæ°æ®ã è¥è®¾ä¸º"yes"(é»è®¤å¼)ï¼ é£ä¹æ¾ç¤ºçæ°æ®å¯è½ä¼ä¸ä¸è´ï¼ å ä¸º /proc ä¸çæ°æ®å¯è½ä¼æ´æ°ã

--user

ä¸å½åè°ç¨ç¨æ·çç¨æ·æå¡ç®¡çå¨(systemd ç¨æ·å®ä¾)éä¿¡ï¼ è䏿¯é»è®¤çç³»ç»æå¡ç®¡çå¨(systemd ç³»ç»å®ä¾)ã

--system

ä¸ç³»ç»æå¡ç®¡çå¨(systemd ç³»ç»å®ä¾)éä¿¡ï¼ è¿æ¯é»è®¤å¼ã

-H, --host=

æä½æå®çè¿ç¨ä¸»æºãå¯ä»¥ä»æå®ä¸ä¸ªä¸»æºå(hostname)ï¼ ä¹å¯ä»¥ä½¿ç¨ "username@hostname" æ ¼å¼ã hostname åé¢è¿å¯ä»¥å ä¸å®¹å¨å(以åå·åé)ï¼ ä¹å°±æ¯å½¢å¦ "hostname:container" çæ ¼å¼ï¼ ä»¥è¡¨ç¤ºç´æ¥è¿æ¥å°æå®ä¸»æºçæå®å®¹å¨åã æä½å°éè¿SSHåè®®è¿è¡ï¼ä»¥ç¡®ä¿å®å¨ã å¯ä»¥éè¿ machinectl -H HOST å½ä»¤ååºè¿ç¨ä¸»æºä¸çææå®¹å¨åç§°ã

-M, --machine=

卿¬å°å®¹å¨åæ§è¡æä½ã å¿é¡»æç¡®æå®å®¹å¨çåç§°ã

--no-pager

ä¸å°ç¨åºçè¾åºå容管é(pipe)ç»å页ç¨åºã

--no-legend

ä¸è¾åºåæ é¢ï¼ ä¹å°±æ¯ä¸å¨è¾åºå表ç头é¨å尾鍿¾ç¤ºå段çåç§°ã

-h, --help

æ¾ç¤ºç®çç帮å©ä¿¡æ¯å¹¶éåºã

--version

æ¾ç¤ºç®çççæ¬ä¿¡æ¯å¹¶éåºã

å½ä»¤

è½å¤è¯å«çå½ä»¤å¦ä¸ï¼

list

æ¾ç¤ºæ»çº¿ä¸çææpeer(便®æå¡åç§°)ï¼è¿æ¯é»è®¤å½ä»¤ã é»è®¤åæ¶æ¾ç¤º"å¯ä¸å"(UniqueName)ä¸"æè¯»å"(well-known name)ï¼ ä½æ¯å¯ä»¥ä½¿ç¨ --unique ä¸ --acquired é项è¿è¡ä¿®æ¹ã

status [SERVICE]

妿 SERVICE æ¯ä¸ä¸ªæ»çº¿æå¡ç"å¯ä¸å"æ"æè¯»å"ï¼ é£ä¹æ¾ç¤ºè¯¥æå¡çè¿ç¨ä¿¡æ¯ååè¯ä¿¡æ¯ã 妿 SERVICE æ¯ä¸ä¸ªè¿ç¨çPIDï¼é£ä¹æ¾ç¤ºè¯¥è¿ç¨çè¿ç¨ä¿¡æ¯ååè¯ä¿¡æ¯ã å¦ææªæå® SERVICE åæ°ï¼é£ä¹æ¾ç¤ºæ»çº¿ææèçè¿ç¨ä¿¡æ¯ååè¯ä¿¡æ¯ã

monitor [SERVICE...]

çè§å·²äº¤æ¢çæ¶æ¯ï¼å¯ä½¿ç¨ Ctrl-C 䏿çè§ã å¦ææªæå® SERVICE åæ°ï¼é£ä¹æ¾ç¤ºæ»çº¿ä¸çæææ¶æ¯ã 妿æå®äº SERVICE åæ°("å¯ä¸å"æ"æè¯»å")ï¼ é£ä¹ä»æ¾ç¤ºå°è¾¾æ¤peeræè仿¤peerååºçæ¶æ¯ã

capture [SERVICE...]

ä¸ monitor å½ä»¤ç±»ä¼¼ï¼ ä¸åä¹å¤å¨äºä»¥ pcap æ ¼å¼è¾åº(è¯¦è§ Libpcap File Format [1] )ã å¼ºçæ¨èå° STDOUT éå®åå°ä¸ä¸ªæä»¶ä¸- ï¼ç¶åä½¿ç¨ wireshark(1) 工巿¥çä¸åæã

tree [SERVICE...]

æ¾ç¤ºæå¡ç对象æ ã 妿ç»åºäº SERVICE åæ°ï¼ é£ä¹ä»æ¾ç¤ºæå®æå¡ç对象æ ï¼ å¦åæ¾ç¤ºæ»çº¿ä¸ææå·æ"æè¯»å"æå¡ç对象æ ã

introspect SERVICE OBJECT [INTERFACE]

æ¾ç¤ºSERVICEæå¡ä¸OBJECT对象(以路å¾è¡¨ç¤º)ç interface, method, property, signal å¼ã 妿æå®äº INTERFACE åæ°ï¼ é£ä¹ä»è¾åºæå®æ¥å£ä¸çæåã

call SERVICE OBJECT INTERFACE METHOD [SIGNATURE [ARGUMENT...]]

è°ç¨ä¸ä¸ªæ¹æ³å¹¶æ¾ç¤ºåºçã å¿é¡»æå®æå¡åç§°(SERVICE)ã对象路å¾(OBJECT)ãæ¥å£åç§°(INTERFACE)ãæ¹æ³åç§°(METHOD)ã 妿è¦ç»æ¹æ³ä¼ éåæ°ï¼ é£ä¹å¿é¡»ä½¿ç¨ç±»åæ è®°(SIGNATURE)åè·ä¸ä¸ªåæ°å符串(ARGUMENT)ã æ ¼å¼ç»èåè§ä¸é¢ç"åæ°æ ¼å¼"å°èã å¯ä»¥ä½¿ç¨ --quiet é项æå¶è¾åºã

get-property SERVICE OBJECT INTERFACE PROPERTY...

æ¾ç¤ºå¯¹è±¡å±æ§çå½åå¼ã å¿é¡»æå®æå¡åç§°(SERVICE)ã对象路å¾(OBJECT)ãæ¥å£åç§°(INTERFACE)ã屿§åç§°(PROPERTY)ã 妿忶æå®äºå¤ä¸ªå±æ§åç§°ï¼é£ä¹å°æç§æ¯è¡ä¸ä¸ªï¼ä¾æ¬¡æ¾ç¤ºæ¯ä¸ªå±æ§çå½åå¼ã é»è®¤ä»¥ç²¾ç®æ ¼å¼è¾åºï¼ 使¯å¯ä»¥ä½¿ç¨ --verbose éé¡¹ä»¥è¯¦ç»æ ¼å¼è¾åºã

set-property SERVICE OBJECT INTERFACE PROPERTY SIGNATURE ARGUMENT...

è®¾ç½®å¯¹è±¡å±æ§çå½åå¼ã å¿é¡»æå®ä¸ååæ°ï¼ æå¡åç§°(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

http://wiki.wireshark.org/Development/LibpcapFileFormat

2.

Type system chapter of the D-Bus specification

http://dbus.freedesktop.org/doc/dbus-specification.html#type-system

3.

D-Bus

http://freedesktop.org/wiki/Software/dbus

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã

ç¿»è¯äººåï¼éæ¥å½
鿥å½ä½åéï¼http://www.jinbuguo.com
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh