web-dev-qa-db-fra.com

Pourquoi / bin / systemctl?

Selon les experts du système, l'emplacement correct de systemctl est /usr/bin/systemctl:

https://lists.freedesktop.org/archives/systemd-devel/2019-August/043224.html

Pourquoi Ubuntu utilise /bin/systemctl?

Connexes: https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/

5
guettli

Donc, démarrer dans un système avec un /usr la partition n'est pas prise en charge par systemd. Plus précisément, basculer root vers un système où /usr n'est pas encore monté n'est pas pris en charge, dans de tels systèmes, les initramfs doivent monter les deux / et /usr avant de changer de racine.

Cela dit, la configuration avec un /usr fonctionnait principalement dans les systèmes systemd, et il fonctionnait presque bien dans les anciennes versions de systemd, avant qu'ils ne le déclarent officiellement non pris en charge et commencent à rejeter les correctifs pour ces configurations.

(Vous avez déjà fait référence à Le cas de la /usr Merge , vous pouvez donc en savoir plus sur les problèmes inhérents à ces configurations et motivations pour la fusion en tant que correctif.)

Étant donné que les systèmes supportant historiquement des /usr était nécessaire dans une certaine mesure, il fallait décider s'il fallait mettre systemctl sous /usr ou à l'extérieur. La principale question à laquelle il faut répondre dans ce contexte est: que se passe-t-il si /usr ne parvient pas à monter et vous avez besoin de réparer votre système pour redémarrer? Si systemctl était inférieur à /usr, il ne serait pas disponible, alors que s'il se trouve dans /bin, vous l'avez autour. Étant donné que vous êtes susceptible de démarrer, d'arrêter et de vérifier l'état des services tout en essayant de réparer votre système, il est logique de l'envoyer dans la partition racine.

Mais, encore une fois, la fusion /usr est la vraie solution, car ces points sont tous sans objet. Si /usr ne parvient pas à monter vous êtes toujours sur un initramfs et pouvez utiliser les outils à l'intérieur pour le réparer. Toutes les distributions modernes passent à une fusion /usr, cette solution devrait donc être bientôt disponible dans la plupart des configurations Linux.

3
filbranden