Utilisez systemd pour gérer les services Linux avec WSL
Article
Le sous-système Windows pour Linux (WSL) prend désormais en charge systemd, un système d’initialisation et un gestionnaire de services utilisés par de nombreuses distributions Linux populaires telles que Ubuntu, Debian, etc. (Qu’est-ce que systemd ?).
Selon systemd.io : « systemd est une suite d’éléments de base pour un système Linux. Il fournit un gestionnaire de système et de services qui s’exécutent en tant que PID 1 et démarre le reste du système. »
Principalement un système d’initialisation et un gestionnaire de services, systemd inclut des fonctionnalités telles que le démarrage à la demande de démons, la maintenance des points de montage et de montage automatique, la prise en charge des captures instantanées et le suivi des processus à l’aide des groupes de contrôle Linux.
Pour activer systemd pour toute autre distribution Linux exécutée sur le WSL 2 (en modifiant la valeur par défaut de l’utilisation de systemv d’initialisation) :
Ouvrez une ligne de commande pour votre distribution Linux et entrez cd / pour accéder au répertoire racine, puis ls pour répertorier les fichiers. Vous verrez un répertoire nommé « etc » qui contient le fichier de configuration WSL pour la distribution. Ouvrez ce fichier afin de pouvoir effectuer une mise à jour avec l’éditeur de texte Nano en entrant : nano /etc/wsl.conf.
Ajoutez ces lignes dans le fichier wsl.conf que vous avez maintenant ouvert pour modifier l’initialisation utilisée par systemd :
Bash
[boot]
systemd=true
Quittez l’éditeur de texte Nano (Ctrl + X, sélectionnez Y pour enregistrer votre modification). Vous devrez ensuite fermer la distribution Linux. Vous pouvez utiliser la commande wsl.exe --shutdown dans PowerShell afin de redémarrer toutes les instances WSL.
Une fois que votre distribution Linux aura redémarré, systemd sera en cours d’exécution. Vous pouvez confirmer l’utilisation de la commande : systemctl list-unit-files --type=service, qui affichera l’état des services associés à votre distribution Linux.
En savoir plus sur configuration avancée des paramètres dans WSL, notamment la différence entre les fichiers de configuration wsl.conf (spécifiques à la distribution) et .wslconfig (global), comment mettre à jour les paramètres de montage automatique, etc.
Vidéo de démonstration de systemd
Microsoft a collaboré avec Canonical afin d’apporter un support système à WSL. Découvrez Craig Loewen (gestionnaire de programmes pour WSL chez Microsoft) et Oliver Smith (gestionnaire de programmes pour Ubuntu sur WSL chez Canonical) qui annoncent le support de systemd et font des démonstrations de ce qu’il rend possible.
Voici quelques exemples d’applications Linux qui dépendent du système :
snap : un système d’empaquetage et de déploiement de logiciels développé par Canonical pour les systèmes d’exploitation qui utilisent le noyau Linux et le système d’initialisation systemd. Les packages sont appelés « snaps », l’outil de ligne de commande pour la génération de snaps est appelé « Snapcraft », le référentiel central dans lequel les snaps peuvent être téléchargés/installés est appelé « Snap Store » et le démon requis pour exécuter des snaps (télécharger à partir du magasin, monter en place, limiter et exécuter des applications hors de ceux-ci) est appelé « snapd ». L’ensemble du système est parfois appelé « snappy ». Essayez d’exécuter la commande : snap install spotify.
systemctl : un utilitaire de ligne de commande utilisé pour contrôler et inspecter systemd et pour vous aider à interagir avec les services de votre distribution Linux. Essayez la commande : systemctl list-units --type=service pour voir quels sont les services disponibles et leur état.
Quelques tutoriels liés illustrant les différentes manières d’utiliser systemd :
Comment l’activation du système affecte-t-elle l’architecture WSL ?
L’activation de la prise en charge de systemd a nécessité des modifications de l’architecture du WSL. Comme systemd nécessite PID 1, le processus WSL d’initialisation démarré dans la distribution Linux devient un processus enfant de systemd. Étant donné que le processus d’initialisation WSL est chargé de fournir l’infrastructure de communication entre les composants Linux et Windows, la modification de cette hiérarchie a nécessité la révision de certaines des hypothèses formulées dans le cadre du processus d’initialisation WSL. Des modifications supplémentaires ont dû être apportées pour garantir un arrêt propre (cet arrêt étant désormais contrôlé par systemd) et pour assurer la compatibilité avec WSLg, le composant de WSL qui exécute les interfaces utilisateur graphiques (GUI) de Linux, ou les applications Linux qui s’affichent dans des fenêtres plutôt que dans la ligne de commande.
Il est également important de noter qu’avec ces modifications, les services système ne conservent pas votre instance WSL active. Votre instance WSL restera active de la même manière qu’elle l’était avant cette mise à jour, comme l’explique l’article de blog sur le support des tâches en arrière plan datant de 2017.
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
Commentaires sur Windows Subsystem for Linux
Windows Subsystem for Linux est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Dans ce module, vous apprenez à utiliser le Sous-système Windows pour Linux (WSL) avec Visual Studio Code (VS Code). Nous expliquons le processus d’installation et les principes de base de l’utilisation de WSL. De plus, nous installons et utilisons l’extension Visual Studio Code WSL. Enfin, nous montrons comment déboguer et exécuter du code Python dans VS Code au sein de notre environnement WSL.