• [^] # Re: GNU/SystemD/Linux

    Posté par . En réponse au journal Systemd va gagner une console système, un bootsplash et un login-screen. Évalué à 7.

    On pourrait imaginer l'ajout d'un pid ou autre bricoles

    Justement, systemd-journald ajoute pas mal « d’autres bricoles », comme :

    – PID, UID et GID du processus émetteur ;
    – le chemin du fichier exécutable ;
    – la ligne de commande complète avec laquelle il a été lancé ;
    – le cgroup dans lequel il se trouve ;
    – le unit systemd dont il dépend ;
    – un identifiant unique de la machine émettrice ;
    – etc.

    Cf. systemd.journal-fields(7) pour la liste complète (dans la section « Trusted journal fields »).

    Du coup, voici à qui peut ressembler une entrée journald complète (telle que renvoyée par journalctl -o export :

    __CURSOR=s=739ad463348b4ceca5a9e69c95a3c93f;i=4ece7;b=6c7c6013a26343b29e964691ff25d04c;m=4fc72436e;t=4c508a72423d9;x=d3e5610681098c10;p=system.journal
    __REALTIME_TIMESTAMP=1342540861416409
    __MONOTONIC_TIMESTAMP=21415215982
    _BOOT_ID=6c7c6013a26343b29e964691ff25d04c
    _TRANSPORT=syslog
    PRIORITY=4
    SYSLOG_FACILITY=3
    SYSLOG_IDENTIFIER=gdm-password]
    SYSLOG_PID=587
    MESSAGE=AccountsService-DEBUG(+): ActUserManager: ignoring unspecified session '8' since it's not graphical: Success
    _PID=587
    _UID=0
    _GID=500
    _COMM=gdm-session-wor
    _EXE=/usr/libexec/gdm-session-worker
    _CMDLINE=gdm-session-worker [pam/gdm-password]
    _AUDIT_SESSION=2
    _AUDIT_LOGINUID=500
    _SYSTEMD_CGROUP=/user/lennart/2
    _SYSTEMD_SESSION=2
    _SELINUX_CONTEXT=system_u:system_r:xdm_t:s0-s0:c0.c1023
    _SOURCE_REALTIME_TIMESTAMP=1342540861413961
    _MACHINE_ID=a91663387a90b89f185d4e860000001a
    _HOSTNAME=epsilon
    

    Vu le nombre de champs ajoutés à stocker (ici, seul les champs MESSAGE et PRIORITY viennent du programme émetteur, tout le reste est ajouté soit par syslog, soit par journald), le choix d’un format binaire devient peut-être plus compréhensible... (Et puis, ça aurait pu être pire : si systemd avait été inventé dix ans plus tôt on aurait probablement eu droit à du XML...)

    En tout cas, toujours au vu de la quantité d’informations à obtenir et à écrire, débattre du temps mis pour écrire un timestamp selon que l’on stocke en texte ou en binaire me semble assez peu pertinent, ce n’est certainement pas là à mon avis que systemd-journald passe le plus de temps.