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
as 3 hello world foobar
a{sv} 3 One s Eins Two u 2 Yes b true
例子
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"
$ 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"; };
# 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 手冊頁計劃提供。 翻譯人員:金步國systemd 231 |