0X2207 d-busz

A D-Bus egy üzenetbusz vagy a folyamatok egymás közötti kölcsönhatásának egyik módja a GNU / Linux operációs rendszerben, amelyet szinte minden modern disztribúcióban használnak. A futási folyamatok gyakran kölcsönhatásban állnak egymással; Csövek (csövek), megosztott memória, RPC stb. - mindez biztosítja az egymás közötti információcserét.

A D-Bus bemutatja az ilyen interakció alternatív módját. A dbus démon maga is foglalkozik az üzenetküldéssel, amelyet az alkalmazások küldenek egymásnak. A dbus koncepció nagyjából a következő: vannak

A démonhoz minden kapcsolatnak saját neve van, például org.kde.kopete.
Így az alkalmazások, amelyek ismerik egymást ezen a néven, egymással is képesek dolgozni.

önelemzés


Felmerül a kérdés, de hogyan ismerjük az objektumok konkrét útvonalait és a módszerek nevét, hogy valami igazán hasznosat tudjunk tenni? Ez segít az objektumok azon képességében, hogy belülről nézzenek, hasonlóan a pszichológiai kutatások azonos nevű módszeréhez. Minden objektum, még akkor is, ha korábban semmit nem tudunk róla, van egy org.freedesktop.DBus.Introspectable interface, amelyben van egy Introspect hívás.

Kérdezzük meg a gyökér objektum kapcsolat org.freedesktop.DBus megmondani magáról:

dbus-küldés - type = method_call --print-válasz --dest = org.freedesktop.DBus / org.freedesktop.DBus.Introspectable.Introspect


Válaszként visszaküld egy olyan karakterláncot, amely tartalmazza a leírással rendelkező XML-fájlt, amelyből megtudhatja, milyen interfészek állnak rendelkezésre, milyen módszerekkel vannak benne és milyen gyermekcsomók, pl. típus / név objektumok

Néhány példa

Keresse meg a kapcsolatok nevét:

dbus-küldés --session --dest = org.freedesktop.DBus - típus = módszer_call - print-reply / org.freedesktop.DBus.ListNames


Meg kell jegyezni, hogy léteznek rendszer (- rendszer) és session (- session) buszok. Az első az összes folyamatban gyakori, a második a felhasználói folyamatokhoz és a bejelentkezés idején kezdődik (például KDE-munkamenet indításakor).

Szerezzen be egy olyan tömböt, amely tartalmazza a következő parancsokat:

dbus-küldés --dest = org.kde.kopete - típus = method_call --print-reply / Kopete org.kde.Kopete.contacts

Hangosabb zene készítése:

dbus-send --dest = org.mpris.amarok --type = method_call --print-válasz / lejátszó org.freedesktop.MediaPlayer.VolumeSet int32: 95

A számítógépet (gyökér jog nélkül) kikapcsolja:

dbus küldje --system --dest = org.freedesktop.Hal --type = method_call --print-válasz / org / freedesktop / Hal / devices / számítógép org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

Kapcsolódó cikkek