Loading

busctl 命令行使用

busctl

busctl是什么的?

busctl 可用于自省和监控 D-Bus 总线。

busctl用法

busctl [OPTIONS...] COMMAND ...

Introspect(内省、内观) the D-Bus IPC bus.

Commands:
  list                     List bus names (以列表形式显示bus name)
  status [SERVICE]         Show bus service, process or bus owner credentials(显示状态)
  monitor [SERVICE...]     Show bus traffic(监控bus流量)
  capture [SERVICE...]     Capture bus traffic as pcap(抓包)
  tree [SERVICE...]        Show object tree of service(以树状形式服务下的object)
  introspect SERVICE OBJECT [INTERFACE](查看服务--对象--接口 信息)
  call SERVICE OBJECT INTERFACE METHOD [SIGNATURE [ARGUMENT...]](调用方法)
                           Call a method
  emit OBJECT INTERFACE SIGNAL [SIGNATURE [ARGUMENT...]](发射信号)
                           Emit a signal
  get-property SERVICE OBJECT INTERFACE PROPERTY...(获取属性值)
                           Get property value
  set-property SERVICE OBJECT INTERFACE PROPERTY SIGNATURE ARGUMENT...(设置属性值)
                           Set property value
  help                     Show this help(显示帮助)

查询所有的bus name

执行命令:busctl list --no-pager --system

注意:--no-pager 参数表示不分页显示,--systemc 参数表示链接到系统bus

NAME                            PID PROCESS         USER             CONNECTION    UNIT                                  SESSION DESCRIPTION
:1.0                            123 dbus-broker-lau root             :1.0          dbus-broker.service                   -       -          
:1.1                              1 systemd         root             :1.1          init.scope                            -       -          
:1.11                           573 rauc            root             :1.11         rauc.service                          -       -          
:1.15                           622 systemd-timesyn systemd-timesync :1.15         systemd-timesyncd.service             -       -          
:1.19                          1042 python3         root             :1.19         docker-007b2d3a171bb6c083dc68968a4f6… -       -          
:1.2                            135 udisksd         root             :1.2          udisks2.service                       -       -          
:1.28                          1624 coredns         root             :1.28         docker-30807294999a70b11bed61212f49c… -       -          
:1.3                            287 os-agent        root             :1.3          haos-agent.service                    -       -          
:1.33                          1944 pulseaudio      root             :1.33         docker-f3b5cb4c6d236b78db17af3dcab3b… -       -          
:1.4                            517 systemd-resolve systemd-resolve  :1.4          systemd-resolved.service              -       -          
:1.6                            532 systemd-logind  root             :1.6          systemd-logind.service                -       -          
:1.7                            533 wpa_supplicant  root             :1.7          wpa_supplicant.service                -       -          
:1.8                            520 NetworkManager  root             :1.8          NetworkManager.service                -       -          
:1.831                         4650 busctl          root             :1.831        dropbear.service                      -       -          
de.pengutronix.rauc             573 rauc            root             :1.11         rauc.service                          -       -          
fi.w1.wpa_supplicant1           533 wpa_supplicant  root             :1.7          wpa_supplicant.service                -       -          
io.hass.os                      287 os-agent        root             :1.3          haos-agent.service                    -       -          
org.bluez                         - -               -                (activatable) -                                     -       -          
org.freedesktop.DBus              1 systemd         root             -             init.scope                            -       -          
org.freedesktop.NetworkManager  520 NetworkManager  root             :1.8          NetworkManager.service                -       -          
org.freedesktop.UDisks2         135 udisksd         root             :1.2          udisks2.service                       -       -          
org.freedesktop.hostname1         - -               -                (activatable) -                                     -       -          
org.freedesktop.login1          532 systemd-logind  root             :1.6          systemd-logind.service                -       -          
org.freedesktop.nm_dispatcher     - -               -                (activatable) -                                     -       -          
org.freedesktop.nm_priv_helper    - -               -                (activatable) -                                     -       -          
org.freedesktop.resolve1        517 systemd-resolve systemd-resolve  :1.4          systemd-resolved.service              -       -          
org.freedesktop.systemd1          1 systemd         root             :1.1          init.scope                            -       -          
org.freedesktop.timedate1         - -               -                (activatable) -                                     -       -          
org.freedesktop.timesync1       622 systemd-timesyn systemd-timesync :1.15         systemd-timesyncd.service             -       -          
org.pulseaudio.Server          1944 pulseaudio      root             :1.33         docker-f3b5cb4c6d236b78db17af3dcab3b… -       -          

查询指定bus name的对象信息

执行命令:busctl introspect fi.w1.wpa_supplicant1 /fi/w1/wpa_supplicant1

NAME                                TYPE      SIGNATURE RESULT/VALUE                            FLAGS
fi.w1.wpa_supplicant1               interface -         -                                       -
.CreateInterface                    method    a{sv}     o                                       -
.ExpectDisconnect                   method    -         -                                       -
.GetInterface                       method    s         o                                       -
.RemoveInterface                    method    o         -                                       -
.Capabilities                       property  as        6 "ap" "p2p" "pmf" "ft" "sha384" "owe"  emits-change
.DebugLevel                         property  s         "info"                                  emits-change writable
.DebugShowKeys                      property  b         false                                   emits-change writable
.DebugTimestamp                     property  b         false                                   emits-change writable
.EapMethods                         property  as        1 "WSC"                                 emits-change
.Interfaces                         property  ao        1 "/fi/w1/wpa_supplicant1/Interfaces/0" emits-change
.InterfaceAdded                     signal    oa{sv}    -                                       -
.InterfaceRemoved                   signal    o         -                                       -
.PropertiesChanged                  signal    a{sv}     -                                       -
org.freedesktop.DBus.Introspectable interface -         -                                       -
.Introspect                         method    -         s                                       -
org.freedesktop.DBus.Properties     interface -         -                                       -
.Get                                method    ss        v                                       -
.GetAll                             method    s         a{sv}                                   -
.Set                                method    ssv       -                                       -


查找 org.bluez 对象下的所有接口:

pi@pi-desktop:~$ busctl introspect org.bluez /org/bluez
NAME                                TYPE      SIGNATURE RESULT/VALUE FLAGS
org.bluez.AgentManager1             interface -         -            -
.RegisterAgent                      method    os        -            -
.RequestDefaultAgent                method    o         -            -
.UnregisterAgent                    method    o         -            -
org.bluez.HealthManager1            interface -         -            -
.CreateApplication                  method    a{sv}     o            -
.DestroyApplication                 method    o         -            -
org.bluez.ProfileManager1           interface -         -            -
.RegisterProfile                    method    osa{sv}   -            -
.UnregisterProfile                  method    o         -            -
org.freedesktop.DBus.Introspectable interface -         -            -
.Introspect                         method    -         s            -

查找 org.bluez 服务下的对象:

pi@pi-desktop:~$ busctl tree org.bluez
└─ /org
  └─ /org/bluez
    └─ /org/bluez/hci0

查看接口下的方法

pi@pi-desktop:~$ busctl introspect org.bluez /org/bluez/hci0
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
org.bluez.Adapter1                  interface -         -                                        -
.GetDiscoveryFilters                method    -         as                                       -
.RemoveDevice                       method    o         -                                        -
.SetDiscoveryFilter                 method    a{sv}     -                                        -
.StartDiscovery                     method    -         -                                        -
.StopDiscovery                      method    -         -                                        -
.Address                            property  s         "D8:3A:DD:9B:13:9C"                      emits-change
.AddressType                        property  s         "public"                                 emits-change
.Alias                              property  s         "pi-desktop"                             emits-change writable
.Class                              property  u         7077888                                  emits-change
.Discoverable                       property  b         false                                    emits-change writable
.DiscoverableTimeout                property  u         180                                      emits-change writable
.Discovering                        property  b         false                                    emits-change
.ExperimentalFeatures               property  as        -                                        emits-change
.Manufacturer                       property  q         305                                      emits-change
.Modalias                           property  s         "usb:v1D6Bp0246d0548"                    emits-change
.Name                               property  s         "pi-desktop"                             emits-change
.Pairable                           property  b         false                                    emits-change writable
.PairableTimeout                    property  u         0                                        emits-change writable
.Powered                            property  b         true                                     emits-change writable
.Roles                              property  as        2 "central" "peripheral"                 emits-change
.UUIDs                              property  as        10 "0000110e-0000-1000-8000-00805f9b34f… emits-change
.Version                            property  y         9                                        emits-change
org.bluez.BatteryProviderManager1   interface -         -                                        -
.RegisterBatteryProvider            method    o         -                                        -
.UnregisterBatteryProvider          method    o         -                                        -
org.bluez.GattManager1              interface -         -                                        -
.RegisterApplication                method    oa{sv}    -                                        -
.UnregisterApplication              method    o         -                                        -
org.bluez.LEAdvertisingManager1     interface -         -                                        -
.RegisterAdvertisement              method    oa{sv}    -                                        -
.UnregisterAdvertisement            method    o         -                                        -
.ActiveInstances                    property  y         0                                        emits-change
.SupportedIncludes                  property  as        3 "tx-power" "appearance" "local-name"   emits-change
.SupportedInstances                 property  y         5                                        emits-change
.SupportedSecondaryChannels         property  as        -                                        emits-change
org.bluez.Media1                    interface -         -                                        -
.RegisterApplication                method    oa{sv}    -                                        -
.RegisterEndpoint                   method    oa{sv}    -                                        -
.RegisterPlayer                     method    oa{sv}    -                                        -
.UnregisterApplication              method    o         -                                        -
.UnregisterEndpoint                 method    o         -                                        -
.UnregisterPlayer                   method    o         -                                        -
.SupportedUUIDs                     property  as        2 "0000110a-0000-1000-8000-00805f9b34fb… emits-change
org.bluez.NetworkServer1            interface -         -                                        -
.Register                           method    ss        -                                        -
.Unregister                         method    s         -                                        -
org.freedesktop.DBus.Introspectable interface -         -                                        -
.Introspect                         method    -         s                                        -
org.freedesktop.DBus.Properties     interface -         -                                        -
.Get                                method    ss        v                                        -
.GetAll                             method    s         a{sv}                                    -
.Set                                method    ssv       -                                        -
.PropertiesChanged                  signal    sa{sv}as  -                                        -

调用方法

pi@pi-desktop:~$ busctl call org.bluez / org.freedesktop.DBus.ObjectManager GetManagedObjects 
a{oa{sa{sv}}} 2 "/org/bluez" 4 "org.freedesktop.DBus.Introspectable" 0 "org.bluez.AgentManager1" 0 "org.bluez.ProfileManager1" 0 "org.bluez.HealthManager1" 0 "/org/bluez/hci0" 8 "org.freedesktop.DBus.Introspectable" 0 "org.bluez.Adapter1" 16 "Address" s "D8:3A:DD:9B:13:9C" "AddressType" s "public" "Name" s "pi-desktop" "Alias" s "pi-desktop" "Class" u 7077888 "Powered" b true "Discoverable" b false "DiscoverableTimeout" u 180 "Pairable" b false "PairableTimeout" u 0 "Discovering" b false "UUIDs" as 10 "0000110e-0000-1000-8000-00805f9b34fb" "0000110a-0000-1000-8000-00805f9b34fb" "0000111f-0000-1000-8000-00805f9b34fb" "0000110b-0000-1000-8000-00805f9b34fb" "00001200-0000-1000-8000-00805f9b34fb" "0000110c-0000-1000-8000-00805f9b34fb" "00001800-0000-1000-8000-00805f9b34fb" "00001801-0000-1000-8000-00805f9b34fb" "0000180a-0000-1000-8000-00805f9b34fb" "0000111e-0000-1000-8000-00805f9b34fb" "Modalias" s "usb:v1D6Bp0246d0548" "Roles" as 2 "central" "peripheral" "Manufacturer" q 305 "Version" y 9 "org.freedesktop.DBus.Properties" 0 "org.bluez.BatteryProviderManager1" 0 "org.bluez.GattManager1" 0 "org.bluez.Media1" 1 "SupportedUUIDs" as 2 "0000110a-0000-1000-8000-00805f9b34fb" "0000110b-0000-1000-8000-00805f9b34fb" "org.bluez.NetworkServer1" 0 "org.bluez.LEAdvertisingManager1" 3 "ActiveInstances" y 0 "SupportedInstances" y 5 "SupportedIncludes" as 3 "tx-power" "appearance" "local-name"
posted @ 2025-12-22 21:51  eiSouthBoy  阅读(3)  评论(0)    收藏  举报