Windows wsl2 prend en charge systemd

arrière-plan

De nombreuses distributions Linux utilisent systemd pour gérer les processus du programme, mais dans WSL, init est utilisé par défaut pour gérer les processus.

Afin de respecter les habitudes d'utilisation à long terme et d'économiser des coûts d'apprentissage inutiles, systemd est pris en charge dans la distribution WSL (j'ai installé Ubuntu20.04 ici) et vous pouvez utiliser la commande systemctl pour démarrer et arrêter le processus.

informations connexes

Il existe de nombreux projets qui peuvent prendre en charge l'utilisation de la commande systemctl et fournir un systemd complet :

Les principes fondamentaux de ces projets ne sont pas très différents, il ne s'agit que de la qualité du traitement des détails et du nombre de fonctions supplémentaires, mais le point le plus important est peut-être les différents niveaux de travail.

Les trois premiers scripts fonctionnent tous au niveau de la couche shell de la figure et s'appuient sur des commandes externes pour exécuter les appels système.

Genie fonctionne au niveau de la couche application. Il est écrit en C# et exécute les appels système via le shell. Il s'agit d'une couche de plus que les trois premières.

Bien que les deux dernières soient également des applications, elles sont écrites en Rust. Elles ne passent pas par le shell, mais exécutent directement les appels système par le wrapper d'appel système C. Ce sont elles qui ont le moins de dépendances et n'ont que quelques centaines de K après liaison dynamique et compilation.

système

Sur les systèmes Linux plus récents, systemd est utilisé pour gérer le processus et devient le premier processus du système (PID est égal à 1), et les autres processus sont ses processus enfants.

systemd fournit une solution complète pour le démarrage et la gestion du système. Il fournit un ensemble de commandes. La lettre d est l'abréviation de démon.

initialisation

Toutes les distributions WSL2 ont init fourni par Microsoft, qui est une alternative à systemd et ne prend pas en charge la commande systemctl.

WSL2 lui-même est exécuté par Windows, donc lorsque vous utilisez la commande tree ou ps, vous verrez que le processus racine n'est pas systemd, ce qui entraînera l'impossibilité de démarrer le démon du service système Linux.

Lorsque nous exécutons la commande systemctl, il sera affiché que notre système d'initialisation (PID 1) n'est pas systemd, mais l'init fourni par Microsoft.

systemctl
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

Installer

Tout d'abord, vous devez confirmer que vous utilisez la version WSL2. Vous pouvez exécuter la commande suivante dans PowerShell pour vérifier :

wsl -l -v

S'il est affiché comme 1, vous pouvez utiliser la commande suivante pour le configurer, où <Version> peut être modifié en 2 :

wsl --set-default-version <Version>

Vous pouvez également utiliser la méthode suivante pour définir la distribution Linux par défaut, où <nom de la distribution> est remplacé par le nom de la distribution Linux à configurer.

Par exemple, wsl --set-version Ubuntu-20.04 configurera la distribution Ubuntu20.04 pour qu'elle utilise WSL2 :

wsl --set-version <distro name> 

Il existe de nombreuses méthodes prises en charge sur Internet, la plus simple étant la méthode officiellement fournie par Microsoft, qui nécessite uniquement l'ajout d'un fichier de configuration.

  1. Ouvrez la ligne de commande PowerShell et mettez à jour WSL.

    wsl --update
    
  2. Ouvrez Ubuntu 22.04, /etc/créez un nouveau fichier dans le répertoire wsl.confet ajoutez le contenu suivant :

    [boot]
    systemd=true
    
  3. Fermez la fenêtre Ubuntu.

  4. Ouvrez la ligne de commande PowerShell et redémarrez WSL.

    wsl --shutdown
    
    
  5. Rouvrez la distribution Ubuntu dans le terminal Windows et entrez la commande suivante pour vérifier si elle réussit :

    systemctl
    

    Le résultat ci-dessus indique que systemd est pris en charge avec succès.


Je suppose que tu aimes

Origine blog.csdn.net/qq_37770674/article/details/132451026
conseillé
Classement