D-Bus

Rédigé par Paulo Aucun commentaire
Classé dans : Linux Mots clés : bus

Mini guide D-Bus :
sources :
 - https://yoannsculo.developpez.com/tutoriels/linux/introduction-dbus/
 - https://doc.ubuntu-fr.org/dbus
D-Bus est un système de communication inter-processus (IPC) initié en 2002 offrant un moyen simple de dialoguer entre applications.
D-Bus permet aux processus qui se sont enregistrés sur le bus d'exposer des services sur un ou plusieurs bus (système ou session) afin de communiquer entre eux.
En outre, D-Bus est en mesure de démarrer des applications et daemons à la demande, lorsque leurs services exposés sur le bus sont demandés.



D-Bus offre deux types de bus :
- le bus session, il est utilisé pour la communication au sein d'une session utilisateur. Plus particulièrement au sein d'une session graphique de X. Il est créé à l'ouverture de session de l'utilisateur et perdure tant qu'elle est ouverte.

- le bus système, comme son nom l'indique est dédié au transport d'information système bas niveau telles que les events kernel sous Linux, les notifications de connexion à un réseau, le (dé)branchement d'un périphérique USB, le statut de la batterie, etc.
Des messages qui concernent donc tous les utilisateurs connectés au système. N'importe quel processus est en mesure de se connecter au bus système.
Cependant, cette instance de bus possède une couche de sécurité autorisant ou refusant les messages qu'on lui demande de transmettre.
A noter, que seul un seul bus système peut fonctionner à la fois. Le bus système est créé au démarrage du système dans une distribution de type Redhat.

Commandes D-Bus :
- dbus-launch : permet de démarrer un bus session depuis un script shell
- dbus-cleanup-sockets : fait le ménage dans les sockets ouverts par des bus et qui ne sont plus utilisés.
- dbus-send : permet d'envoyer un message sur le bus depuis un script shell
- dbus-daemon : Le plus important, le daemon D-Bus
- dbus-monitor : Permet d'observer ce qui transite sur un ou plusieurs bus
    dbus-monitor --session (visu du bus session) - par defaut -
    dbus-monitor --system (visu du bus system)
- dbus-uuidgen : génère des uuids pour les sessions de D-Bus
Nb : fichier de conf : /etc/dbus-1/

Sur les Redhat like (les autres, je sais pas...), il existe un joyeux bordel :
- /run --> socket d-bus
- /var/run --> lien symbolique vers /run (indspensable pour le fonctionement de systemd)
Certaines applis utilisent encore /var/run ....



Commandes systemd pour gérer d-bus :

systemctl status dbus.service

systemctl status dbus.socket

systemctl --failed          # en cas de misere...

systemctl cat dbus.service  # pour voir les fic de conf

 

 

 

Les commentaires sont fermés.