URL: https://linuxfr.org/news/speciale-lennart-poettering-nouvelles-versions-de-systemd-et-pulseaudio Title: Spéciale Lennart Poettering : nouvelles versions de systemd et PulseAudio Authors: ariasuni Davy Defaud, BAud, antistress, palm123, Benoît Sibaud, Melkor73, stiffux, ZeroHeure, Jarvis, patrick_g, Jiehong, Sébastien Koechlin, Kfadelk et liberforce Date: 2014年03月08日T15:00:46+01:00 License: CC By-SA Tags: systemd, lennart_poettering, apparmor, seccomp, selinux, smack et lwn Score: 42 La sortie de la dernière version de PulseAudio coïncide avec celle de trois nouvelles versions de _systemd_, c’est donc l’occasion de faire une dépêche spéciale Lennart Poettering ! ![Lennart Poettering <3](http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/lennart_poettering_2012.jpg/320px-lennart_poettering_2012.jpg) [_photo de Harald Hoyer sous CC-BY-SA-3.0_](https://commons.wikimedia.org/wiki/File:Lennart_Poettering_2012.jpg) ---- ---- # PulseAudio [Lien de l’annonce](http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/5.0/) ## En résumé * prise en charge de BlueZ 5 (A2DP seulement) ; * ré‐implémentation des modules tunnel ; * prise en charge de _systemd-journal_ comme système de journalisation ; * petits changements çà et là ; * beaucoup de corrections de bogues. ## Prise en charge de BlueZ 5 (A2DP seulement) Posons d’abord le décor : les développeurs du projet BlueZ ont décidé de refaire leur interface (de programmation) client. Ils ont aussi décidé d’abandonner la prise en charge de l’ancienne interface. BlueZ 4 a l’ancienne interface et BlueZ 5 a la nouvelle. La décision d’abandonner la prise en charge de l’ancienne interface dans BlueZ 5 signifie que toutes les applications, incluant PulseAudio, qui fonctionnaient avec BlueZ 4 ne fonctionneront pas avec BlueZ 5. La gestion de BlueZ 5 a progressivement été ajoutée dans diverses applications, et c’est la première version de PulseAudio qui prend en charge BlueZ 5. Cela signifie que tout est bien, n’est‐ce pas ? Pas vraiment. Le projet BlueZ a aussi décidé d’abandonner la prise en charge des profils HSP et HFP, qui étaient les profils qui avaient la responsabilité de gérer la téléphonie audio. Si vous avez un casque, son microphone ne va pas fonctionner avec BlueZ 5, parce que le microphone est seulement géré par les profils HSP et HFP. Des distributions ont migré vers BlueZ 5 sans fournir aux utilisateurs la possibilité de rester avec BlueZ 4. Certaines de ces distributions ont probablement fait la transition sans en comprendre les conséquences — elles ont maintenant une sérieuse régression en termes de fonctionnalités, car les casques de leurs utilisateurs ont cessé de fonctionner (d’accord, les casques peuvent toujours être utilisés pour écouter de la musique, mais ils sont inutiles pour les applications de VoIP). Les développeurs de GNOME ont aussi pris la décision, peut‐être en étant mal informés, d’abandonner la prise en charge de BlueZ 4 dans la dernière version de leur environnement, ce qui signifie que passer à la version courante de GNOME (3.10) pose un problème différent en fonction de la version de BlueZ du système : avec BlueZ 4, l’interface utilisateur de GNOME pour gérer le Bluetooth ne va pas fonctionner et, avec BlueZ 5, la gestion des casques audio sera castrée. Comment refaire fonctionner les profils HSP et HFP avec BlueZ 5 ? Il sont partiellement gérés dans oFono (un démon de téléphonie), qui va heureusement être terminé prochainement, et la prochaine version de PulseAudio gèrera donc HSP/HFP via oFono. Cela rajoute une pile de téléphonie comme dépendance à PulseAudio pour utiliser vos casques Bluetooth, ce qui peut être considéré comme excessif. Ce problème reste à résoudre avec les développeurs de BlueZ. Maintenant, les détails techniques à propos de la gestion de BlueZ 5 dans PulseAudio ; il y a désormais des modules séparés pour BlueZ 4 et BlueZ 5 : `module-bluez4-discover` et `module-bluez5-discover`. L’ancien `module-bluetooth-discover` existe toujours et est utilisé dans la configuration par défaut. `module-bluetooth-discover` est maintenant une couche d’abstraction : il va charger `module-bluez4-discover` et/ou `module-bluez5-discover` en fonction de ce qui est présent sur le système. Cela signifie que la migration vers Bluez 5 peut être effectuée sans changer la configuration de PulseAudio. ## Ré-implémentation des modules tunnel Les anciens `module-tunnel-sink` et `module-tunnel-source` ont une implémentation indépendante du protocole client de PulseAudio. Il y a une autre implémentation dans _libpulse_, qui est utilisée par les applications pour discuter avec le serveur PulseAudio. C’est clairement une duplication d’efforts et cela rend la maintenance des modules tunnel beaucoup plus dure qu’elle ne devrait l’être. Dans le cadre d’un projet GSoC, Alexander Couzens a ré‐implémenté les modules tunnel pour qu’ils utilisent _libpulse_ au lieu d’implémenter les détails du protocole eux‐mêmes. Ils sont maintenant disponibles sous les noms `module-tunnel-sink-new` et `module-tunnel-source-new`. L’implémentation n’est pas tout à fait complète, ce qui explique que les anciens modules existent toujours, mais les nouvelles versions peuvent déjà être testées (si vous avez des problèmes avec la qualité de la diffusion audio des anciens modules tunnel, ça vaut la peine de voir si les nouveaux modules fonctionnent mieux). Notez que si vous utilisez `module-tunnel-sink-new` ou `module-tunnel-source-new` dans un fichier de configuration, ce fichier de configuration ne fonctionnera plus quand ces modules seront terminés car le suffix _-new_ sera supprimé du nom du module. ## Prise en charge de systemd-journal Une nouvelle cible pour le système de journalisation a été ajoutée : « journal ». Il est utilisé par défaut si PulseAudio est compilé avec prise en charge de _systemd-journal_. La nouvelle cible pour le système de journalisation est aussi gérée dans `daemon.conf` (option `log-target`), par la ligne de commande (option `--log-target`) et dans _pacmd_ (commande `set-log-target`). # systemd Voici une traduction des journaux des modifications concernant _systemd_. Les changements les moins importants et / ou trop techniques n’ont pas été traduits, et nous vous invitons alors à consulter les notes de version originales. Un petit résumé pour les pressés : beaucoup d’améliorations et d’ajouts concernant la sécurité, quelques nettoyages et surtout beaucoup de nouvelles fonctionnalités dont certaines raviront l’utilisateur final, comme une meilleure prise en charge de la fermeture d’un écran d’ordinateur portable et la sauvegarde et restauration de la luminosité de l’écran. Sur une note un peu plus technique, on pourra aussi noter l’implémentation de _kdbus_ de plus en plus complète, une meilleure prise en charge de SELinux et d’options de sécurité, une syntaxe pour écrire des unités qui s’enrichit encore pour permettre plus de flexibilité, de sécurité et de contrôle sur les processus, et la fonctionnalité qui permet de démarrer sans `/etc/fstab` s’améliore pour gérer encore plus de cas. Note : côté sécurité mais un peu en marge, [la version 3.0 des pilotes Intel pour X.Org permettra à ce dernier de tourner sans les droits _root_ en s’appuyant sur systemd/logind](http://www.phoronix.com/scan.php?page=news_item&px=MTYzNjc) ([le défunt OS Moblin 2.0 avait étrenné dès 2009 cette fonctionnalité](http://lwn.net/Articles/341033/) rendue théoriquement possible par [KMS](http://fr.wikipedia.org/wiki/Kernel-based_mode-setting)). ## systemd 209 [Lien de l’annonce](http://lists.freedesktop.org/archives/systemd-devel/2014-February/017146.html) * Un nouveau composant nommé `systemd-networkd` a été ajouté. Il peut être utilisé pour configurer les interfaces du réseau local, statiquement ou via DHCP. Il est capable de construire des ponts (_bridges_), des réseaux locaux virtuels (VLAN), et d’[agréger des liens](https://fr.wikipedia.org/wiki/Agr%C3%A9gation_de_liens). À l’heure actuelle, aucun script pour la configuration interactive de réseaux n’est fourni. Utilisez‐le pour votre _initrd_, conteneur, configuration embarquée ou serveur si vous avez besoin d’une solution de configuration réseau simple mais puissante. Sa conception est plutôt ingénieuse, car il permet le filtrage par métacaractère parmi les interfaces branchées à chaud. Par exemple, avec un seul bout de configuration, vous pouvez faire en sorte que toutes les interfaces Ethernet qui apparaissent soient automatiquement ajoutées à un pont, ou des choses similaires. Il gère le _link-sensing_ et bien plus. * Un nouvel outil appelé `systemd-socket-proxyd` a été ajouté. Il agit comme un serveur mandataire (proxy) bidirectionnel pour les sockets TCP. C’est utile pour ajouter la prise en charge de l’activation par _socket_ aux services qui ne la prennent actuellement pas en charge, incluant les machines virtuelles et compagnie. * Ajout d’un nouvel outil pour sauvegarder et restaurer l’état des interrupteurs physiques (rfkill) à l’arrêt et au redémarrage. * Sauvegarde et restauration de l’état du rétro‐éclairage du clavier et de la luminosité de l’écran. * Une nouvelle option de ligne de commande du noyau — `systemd.restore_state=1|0` — permet d’activer et désactiver les restaurations des états sauvegardés des périphériques matériels. Plus précisément, les états des interrupteurs matériels et du rétroéclairage ne sont pas restaurés. * _udev_ possède maintenant une nouvelle construction `SECLABEL{}` pour étiqueter les nœuds de périphériques avec une étiquette de sécurité spécifique quand ils apparaissent. Pour le moment, seulement `SECLABEL{selinux}` est pris en charge, mais la syntaxe est prête pour des environnements de sécurité additionnels. * _systemd_ ne dépend plus de _libdbus_. Toute la communication est désormais effectuée avec _sd-bus_, l’implémentation de la bibliothèque de bus bas niveau de _systemd_. * la prise en charge de _kdbus_ a été ajoutée au processus n^(o) 1 (PID 1) lui‐même. Quand _kdbus_ est activé, le PID 1 met en place le bus système et active la prise en charge d’un nouveau type d’unité `.busname` qui encapsule l’activation des noms de bus dans _kdbus_. Ça fonctionne un petit peu comme les unités `.socket`, excepté pour les noms de bus. Un nouveau générateur a été ajouté qui convertit automatiquement les fichiers d’activation de service _dbus1_ classiques aux formats `.busname` et `.service` natifs de _systemd_. * Un démon mandataire (proxy) est maintenant fourni aux clients proxy se connectant via les [_sockets_](http://fr.wikipedia.org/wiki/Berkeley_sockets) D-Bus AF_UNIX classiques vers _kdbus_, pour fournir une compatibilité totale avec le D-Bus classique. * Un pilote de bus qui gère la compatibilité avec les appels D-Bus classiques a été implémenté. * L’option de compatibilité `FsckPassNo=` dans les unités de montage et de service a été supprimée. Le générateur de table de montage de systèmes de fichiers (_fstab_) ajoutera désormais automatiquement les dépendances nécessaires, et ne nécessite plus de gestion par le PID 1. * `journalctl` a gagné une nouvelle option, `--list-boots`, qui liste les démarrages récents avec leur date et identifiant de démarrage. * Les divers outils tels que `systemctl`, `logintctl`, `timedatectl`, `busctl`, `systemd-run`, etc., ont obtenu une nouvelle option `-M` pour se connecter à un conteneur de système d’exploitation local (connexion directe sans utiliser SSH). Cela fonctionne sur n’importe quel conteneur qui est enregistré avec _machined_, comme ceux créés par _libvirt-lxc_ ou _nspawn_. * `systemd-run` et `systemd-analyze` ont aussi obtenu l’ajout de l’option `-H` pour se connecter à un hôte distant via SSH. C’est particulièrement utile pour `systemd-run`, car cela permet de mettre en file d’attente des tâches sur des systèmes distants. * `machinectl` a obtenu une nouvelle commande `login` pour ouvrir une connexion _getty_ dans n’importe quel conteneur local. Cela fonctionne avec n’importe quel conteneur enregistré avec _machined_ (comme ceux créés avec _libvirt-lxc_ ou _nspawn_), et qui font tourner _systemd_ à l’intérieur. * `machinectl` a gagné une nouvelle commande `reboot` qui peut être utilisée pour lancer un redémarrage sur un conteneur spécifique enregistré avec _machined_. Cela fonctionne sur n’importe quel conteneur qui possède un système d’initialisation quelconque. * `systemctl` a obtenu une nouvelle commande, `list-timers`, qui affiche une liste sympathique des unités _timer_ avec le temps qu’il reste avant leur prochaine échéance. * Des paramètres alternatifs de `reboot()` peuvent maintenant être spécifiés sur la ligne de commande `systemctl reboot`, et seront passés à l’appel système `reboot()`. * Il existe désormais dans `/etc/systemd/systemd.conf` de nouveaux paramètres pour configurer les temps d’expiration des unités, ainsi que l’intervalle limite de départ et de _burst_. Ils peuvent toujours être redéfinis dans chaque unité. * Lors de la redirection du journal vers la console avec `journald`, l’horodotage est maintenant inclus (en fonction du paramètre dans `/sys/module/printk/parameters/time`). * `OnCalendar=` dans les unités _timer_ comprend maintenant les chaînes de caractères spéciales `yearly` et `annually` (les deux sont équivalentes). * La précision des unités _timer_ est maintenant configurable avec le nouveau paramètre `AccuracySec=`. Sa valeur par défaut est de 1 minute. * Un nouveau type de dépendance `JoinsNamespaceOf=` a été ajouté, il permet de lancer deux services dans les mêmes répertoire `/tmp` et espace de noms de réseau, si `PrivateNetwork=` ou `PrivateTmp=` sont utilisés. * Une nouvelle commande `cat` a été ajoutée à _systemctl_. Elle affiche le fichier d’unité original d’une unité, et le concatène avec le contenu des fichiers de configuration supplémentaires, affichant ainsi la configuration complète. * _systemctl_ gère désormais les [métacaractères](https://fr.wikipedia.org/wiki/M%C3%A9tacaract%C3%A8re) pour les diverses commandes `list-xyz`, comme `list-units` et `list-sockets`, ainsi que pour les commandes qui prennent plusieurs noms d’unités en paramètres. * L’option `--unit=` de `journalctl` a obtenu la prise en charge des métacaractères. * Tous les démons _systemd_ utilisent maintenant la logique de chien de garde (_[[watchdog]]_), _systemd_ remarque donc automatiquement quand ils restent bloqués. * La base de données de matériel d’_udev_ contient désormais des informations sur les vendeurs et produits des appareils SDIO. * Les services par connexion activés par _socket_ incluent maintenant une courte description des paramètres de connexion dans la description. * Une nouvelle option `PrivateDevices=` a été ajoutée aux unités de service, ce qui permet de faire tourner un service dans un répertoire `/dev` situé dans un espace de noms qui ne contient aucun nœud pour les périphériques physiques. Plus précisément, il contient seulement les périphériques tels que `/dev/null`, `/dev/urandom` et `/dev/zero` qui sont les points d’entrée de l’API. * `logind` a été étendu pour gérer des comportements tels que le changement de terminal virtuel sur les sièges qui ne prennent pas en charge un terminal virtuel. Cela rend le multi‐session disponible sur les sièges qui ne sont pas le premier (_seat0_), et sur les systèmes où la gestion par le noyau pour les terminaux virtuels a été désactivée à la compilation. * Si un processus maintient un verrou de délai pour la mise en veille ou l’arrêt du système et n’arrive à le libérer à temps, son identité sera désormais enregistrée dans le journal. Cela rend plus facile l’identification des processus qui provoquent des lenteurs lors de ces deux opérations. * Lors de l’analyse du fichier `/etc/crypttab`, la gestion d’une nouvelle option `key-slot=`, identique à celle de Debian, a été ajoutée. Cela permet d’indiquer quel emplacement LUKS utiliser sur le disque, accélérant le chargement de la clé. * La sortie du statut de démarrage est maintenant activée automatiquement après un court délai si le démarrage ne progresse pas, dans le but de donner à l’utilisateur une indication de ce qu’il attend. * La sortie au démarrage a été améliorée pour montrer combien de temps il reste avant que la tâche soit périmée. * L’option `KillMode` dans les unités de service a obtenu une nouvelle valeur possible, `mixed`. Si utilisée, et que l’unité est arrêtée, alors le SIGTERM initial est seulement envoyé au processus principal du démon, tandis que le signal SIGKILL suivant est envoyé à tous les processus restants du service. * Lors de la lecture des fichiers d’unité, _systemd_ vérifie désormais les droits d’accès à ses fichiers, et affiche un avertissement pour certaines combinaisons suspectes. Cela a été ajouté pour rendre plus facile la vérification d’erreurs d’empaquetage où les fichiers d’unité sont marqués exécutables ou en écriture pour tout le monde. * `systemd-nspawn` a été mis à jour pour créer un nouveau domaine _kdbus_ pour chaque conteneur qui est invoqué, permettant alors à chaque conteneur d’avoir son propre ensemble de bus système et utilisateur, indépendant de l’hôte. * `systemd-nspawn` a obtenu une nouvelle option, `--drop-capability=`, qui permet de lancer le conteneur avec moins de capacités que par défaut. `--drop-capabilité=` et `--capability=` acceptent maintenant tous les deux la chaîne spéciale `all` pour abandonner ou garder toutes les capacités. * `systemd-nspawn` a gagné une nouvelle option pour exécuter les conteneurs avec des étiquettes SELinux spécifiques mises en place. * `logind` va maintenant suivre un identifiant « Desktop » pour chaque session qui code l’environnement de bureau de cette dernière. C’est utile pour les environnements de bureau qui veulent identifier facilement plusieurs sessions en cours d’eux‐mêmes. * Un nouveau paramètre `SELinuxContext=` pour les unités des services a été ajouté et permet de spécifier un contexte d’exécution SELinux spécifique pour un service. * La plupart des outils client de _systemd_ respecteront désormais la variable d’environnement `$SYSTEMD_LESS` pour le visualiseur de texte. Par défaut, ces outils outrepasseront `$LESS` pour permettre à certaines opérations de fonctionner, telles que le « saut à la fin ». Avec `$SYSTEMD_LESS`, il est possible d’influencer cette logique. (NdR : cette dépêche a permis de découvrir un [bogue avec Mathjax](http://linuxfr.org/suivi/markdown-et-mathjax).) * Le script `seccomp` de _systemd_ a été modifié pour utiliser la _libseccomp_ au lieu d’utiliser sa propre implémentation. Cela a pour avantage une meilleure portabilité parmi d’autres choses. ## systemd 210 [Lien de l’annonce](https://lwn.net/Articles/588504/) * _systemd_ va maintenant ré‐étiqueter `/dev` après le chargement de la politique [SMACK](https://en.wikipedia.org/wiki/Smack_%28Linux_security_module%29) en fonction des règles SMACK. * Une nouvelle option pour les unités `AppArmoreProfile=` a été ajoutée pour définir le profil AppArmor du processus d’une unité. * Une nouvelle vérification de condition `ConditionArchitecture=` a été ajoutée pour rendre l’unité conditionnelle en fonction de l’architecture du système, comme rapporté par le champ « machine » de la commande `uname`. * `systemd-networkd` peut maintenant filtrer par système de virtualisation, architecture, ligne de commande du noyau, nom d’hôte, et identifiant de la machine. * Le comportement de `logind` est maintenant beaucoup plus vigilant lors de la suspension de la machine à cause d’un écran rabattu. Au lieu d’agir seulement lors du rabat de l’écran, il va surveiller en permanence son statut et agir en conséquence. C’est utile pour les ordinateurs portables sur lesquels le bouton d’allumage est à l’extérieur du châssis et peut être actionné sans ouvrir l’écran (comme le Lenovo Yago). Sur ces machines, `logind` va immédiatement remettre en veille la machine si le bouton a été pressé par accident pendant que l’ordinateur était en veille et dans un sac à dos ou autre. * _nspawn_ va désormais utiliser le gestionnaire _cgroup_ des périphériques par défaut, et seulement permettre la création et l’accès aux nœuds de périphériques de l’API comme `/dev/null` ou `/dev/random`, ainsi que l’accès aux (mais pas la création de) périphériques _tpy_. * _systemd_ comprend désormais les suffixes usuels M, K, G, T selon les normes du [système international d’unités](https://fr.wikipedia.org/wiki/Syst%C3%A8me_international_d%E2%80%99unit%C3%A9s) (c’est‐à‐dire en base 1000) lorsque qu’utilisé pour décrire des flux et des métriques matérielles. Il conservera les conventions de la [commission électrotechnique internationale](https://fr.wikipedia.org/wiki/Commission_%C3%A9lectrotechnique_internationale) (c’est‐à‐dire en base 1024) pour les métriques logicielles, selon ce qui est habituel d’après Wikipédia. Chaque option de configuration documente explicitement quelle base est utilisée. * Le paramètre `DeviceAllow=` dans les fichiers d’unités prend désormais en charge une syntaxe pour mettre sur liste blanche un groupe entier de nœuds de périphériques d’un seul coup, en se basant sur la liste de `/proc/devices`. Par exemple, avec la chaine `char-pts`, il est maintenant possible de mettre sur liste blanche tous les pseudo‐terminaux virtuels courants et futurs en une seule fois. * `systemd-networkd` n’est plus activé statiquement, il utilise la section habituelle `[Install]` afin d’être activable et désactivable avec `systemctl`. Il est tout de même encore activé par défaut. ## systemd 211 [Lien de l’annonce](http://lists.freedesktop.org/archives/systemd-devel/2014-March/017817.html) * Une nouvelle option pour les fichiers d’unités `RestrictAddressFamilies=` a été ajoutée pour restreindre à quelles familles d’adresses de _sockets_ les processus d’unités ont accès. Cela prend les noms de famille d’adresses tels que `AF_INET` et `AF_UNIX`, et est pratique pour minimiser la surface d’attaque de services via des piles de protocoles exotiques. Cela fait partie du système de filtrage d’appels systèmes de [_seccomp_](https://en.wikipedia.org/wiki/Seccomp). * Deux nouveaux paramètres pour les unités ont été ajoutés pour gérer des dossiers de _runtime_ par démon sous `/run`: `RuntimeDirectory=` et `RuntimeDirectoryMode=`. Cela permet de remplacer la mise en place de permissions appropriées avec des bouts de code de _tmpfiles_, et possède l’avantage que la durée de vie du dossier est limitée à celle du démon et que le démon commence avec un dossier vide à chaque fois. C’est particulièrement pratique lors de l’écriture de services qui se débarrassent de privilèges avec les paramètres `User=` et `Group=`. * Le paramètre d’unité `DeviceAllow=` supporte maintenant les métacaractères pour sélectionner les noms d’un groupe de périphériques. * Le fichier de configuration `systemd.conf` possède désormais les paramètres `DefaultCPUAccounting=`, `DefaultBlockIOAccounting=` et `DefaultMemoryAccounting=` pour activer ou désactiver globalement la compatibilité de ses ressources (_cgroups_) pour toutes les unités. Ces paramètres peuvent cependant toujours être écrasés par chaque unité individuellement. * `systemd-gpt-auto-generator` est maintenant capable de découvrir les partitions `/srv` et racine en plus de `/home` et des partitions d’échange (_swap_). Il prend maintenant aussi en charge les partitions chiffrées avec LUKS. Avec tout cela en place, la découverte automatique des partitions à monter suivant la [spécification des partitions découvrables](http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec) est maintenant beaucoup plus complète. Cela permet de démarrer sans fichier `/etc/fstab` et sans paramètre `root=` dans la ligne de commande du noyau sur les systèmes préparés correctement. * `systemd-nspawn` gagne une nouvelle option `--image=` qui permet de démarrer des images disques et des installations GNU/Linux sur n’importe quel périphérique bloc qui suit la spécification des partitions découvrables (voir au‐dessus). Cela signifie que les installations faites avec des installeurs mis à jour de façon appropriée peuvent maintenant être démarrées et déployées en utilisant le gestionnaire de conteneurs, sans aucune modification (nous espérons que _libvirt-lxc_ ajoutera bientôt la prise en charge de cette fonctionnalité également). * `system-networkd` peut désormais configurer les adresses locales en utilisant IPv4LL. * Le nouvel outil `systemd-network-wait-online` a été ajouté pour attendre de façon synchrone la disponibilité du réseau en utilisant `systemd-networkd`. * Les dossiers de _runtime_ définis pour chaque utilisateur par la variable `$XDG_RUNTIME_DIR` sont maintenant des instances individuelles de _tmpfs_, ce qui a pour avantage d’introduire des groupes séparés pour chaque utilisateur, avec des limites de tailles individuelles. Cela permet de s’assurer qu’un client non privilégié ne puisse plus affecter négativement le système ou d’autres utilisateurs en remplissant leurs répertoires `$XDG_RUNTIME_DIR`. La nouvelle option `RuntimeDirectorySize=` dans `logind.conf` permet de contrôler la taille limite par défaut pour tous les utilisateurs. Cela utilise par défaut 10 % de la mémoire physique disponible. Ce n’est cependant pas un remplacement pour les quotas sur _tmpfs_ (ce que le noyau ne gère toujours pas), car `/dev/shm` et `/tmp` sont toujours des ressources partagées entre le système et les utilisateurs non privilégiés. * `logind` va maintenant désactiver automatiquement la mise en veille lors du rabat de l’écran d’un ordinateur portable si plus d’un écran est connecté. Il était auparavant prévu que ça soit implémenté individuellement par les environnements de bureau (comme GNOME). Cependant, cela a été ajouté à `logind` pour éviter au démarrage le scénario dans lequel un environnement n’aurait pas été démarré et donc n’aurait pas pu placer de verrou inhibiteur à temps. * `logind` va désormais attendre au moins 30 s après chaque cycle de mise en veille et reprise du système, et 3 min après le démarrage du système pour mettre en veille le système dû au rabat d’un écran d’ordinateur portable. Cela devrait donner assez de temps aux stations d’accueil USB et appareils similaires pour être reconnus et configurés après la reprise du système et le démarrage pour agir comme bloqueur de mise en veille. * `systemd-run` a obtenu un nouveau paramètre `--property` qui permet d’initialiser les propriétés de contrôle de ressource (et d’autres choses) pour les cadres (_scope_) créés ou les unités de service. Exemple : `systemd-run --property=BlackIOWeight=10 updatedb` peut être utilisé pour lancer _updatedb_ avec une priorité d’ordonnancement des entrées‐sorties faible. * Quand _systemd_ est compilé avec la prise en charge de _kdbus_, la gestion basique des politiques imposées est maintenant en place. (Notez qu’activer _kdbus_ annule toujours votre garantie, et qu’aucune promesse de compatibilité d’API n’est faite). ![DLFP](https://lh3.googleusercontent.com/-cdXetUXsczw/UvT1Gp7C_jI/AAAAAAAAHp0/lobnZMyKBOo/w722-h901-no/14+-+1) [[_source_](https://plus.google.com/+KaySievers/posts/dHm4LCphSJy)]

AltStyle によって変換されたページ (->オリジナル) /