• [^] # Re: la guerre de s unices

    Posté par . En réponse au journal udev forké. Évalué à 2.

    _Faut savoir, tu connais systemd sur le bout des doigts pour expliquer comment dbus est obligatoire pour le debug _

    A l'heure actuelle il y a une personne qui connait systemd sur le bout des doigts et peut-être 150 qui le connaissent vraiment très bien. Je ne fais pas partie de ces élus, et j'éviterai aussi longtemps que possible d'en faire partie.

    En ce qui concerne DBus, à l'heure actuelle (sauf erreur de ma part) on ne dispose que de deux façon de dialoguer avec systemd : systemctl et DBus.
    Si on utilise systemctl on a un nombre (pour l'instant) limité de fonctions. Un autre utilitaire systemadm est en cours de création, mais il ne fonctionne qu'en mode graphique.
    Et systemctl est assez pourri. (Ce n'est pas un troll, tout le monde est d'accord là dessus même chez RH/Fedora). Pourri pourquoi ? Parcequ'il est très incomplet et pas forcément cohérent avec lui même. Sur les commandes un peu complexe on se retrouve à faire du ;echo $ $ $ pour pouvoir lire le résultat, pour certaines opérations il faut aller shooter des symlinks à la main etc.

    Systemctl permet de faire très simplement toutes les opérations de base (restart, reload, reboot, status, changement d'init etc.) par contre pour les opérations un peu plus complexe il faut soit passer par des variables d'environnement, ce qui nécessite un peu de jonglerie. Par exemple que veut dire :
    On top of that basic environment variable substitution is supported. Use ${FOO} as part of a word, or as word of its own on the command line, in which case it will be replaced by the value of the environment variable including all whitespace it contains, resulting in a single argument. Use $FOO as a separate word on the command line, in which case it will be replaced by the value of the environment variable split up at whitespace, resulting in no or more arguments. Note that the first argument (i.e. the program to execute) may not be a variable, and must be a literal and absolute path name.

    Et l'air de rien ça complique pas mal la mise en mode maintenance…