Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Windows-subsysteem voor Linux (WSL) ondersteunt nu systemd, een init-systeem en servicemanager die wordt gebruikt door veel populaire Linux-distributies zoals Ubuntu, Debian en meer. (Wat is systemd?).
De standaardinstelling van het init-systeem is onlangs gewijzigd van SystemV, waarbij nu de standaardwaarde is voor de huidige versie van Ubuntu- die wordt geïnstalleerd met behulp van de wsl --install opdracht standaard. Linux-distributies anders dan de huidige versie van Ubuntu kunnen nog steeds gebruikmaken van de WSL init, vergelijkbaar met SystemV init. Zie Hoe u systemd kunt inschakelenals u wilt overschakelen naar systemd.
Wat is systemd in Linux?
Volgens systemd.io: "systemd is een reeks basisbouwstenen voor een Linux-systeem. Het biedt een systeem- en servicemanager die als PID 1 draait en de rest van het systeem start.
Voornamelijk een init-systeem en servicemanager, bevat systemd functies zoals het starten van daemons op aanvraag, onderhoud van koppelpunten en automatisch koppelen, ondersteuning voor momentopnamen en het bijhouden van processen met behulp van Linux-besturingsgroepen.
De meeste grote Linux-distributies gebruiken nu systemd, dus als u het inschakelt op WSL, wordt de ervaring nog meer vergelijkbaar met het gebruik van bare-metal Linux. Zie de videoaankondiging met systemd demo's of voorbeelden van het gebruik van systemd hieronder voor meer informatie over wat systemd te bieden heeft.
Hoe kan ik systemd inschakelen?
Systemd is nu de standaardinstelling voor de huidige versie van Ubuntu die wordt geïnstalleerd met behulp van de wsl --install opdracht standaard.
Om systemd in te schakelen voor andere Linux-distributies die op WSL 2 draaien (door de standaard van het gebruik van de systemv init te wijzigen):
Zorg ervoor dat uw WSL-versie 0.67.6 of hoger is:
- om te controleren, voert u
wsl --version; als de opdrachtInvalid command line option: --versionfout genereert, moet u WSL bijwerken; - Om bij te werken, voert u
wsl --updateof uit en downloadt u de nieuwste versie uit de Microsoft Store.
- om te controleren, voert u
Open een opdrachtregel voor uw Linux-distributie en voer
cd /in om toegang te krijgen tot de hoofdmap enlsom de bestanden weer te geven. U ziet een map met de naam 'etc' die het WSL-configuratiebestand voor de distributie bevat. Open dit bestand zodat u een update kunt maken met de Nano-teksteditor door het volgende in te voeren:nano /etc/wsl.conf.Voeg deze regels toe aan het
wsl.conf-bestand dat u nu hebt geopend om de init te wijzigen die wordt gebruikt voor het systeem:[boot] systemd=true
Sluit de Nano-teksteditor (Ctrl+ X, typ Y om uw wijziging op te slaan en bevestig met de
enter-toets).Vervolgens moet u de Linux-distributie sluiten. U kunt de opdracht
wsl.exe --shutdownin PowerShell gebruiken om alle WSL-exemplaren opnieuw op te starten.Zodra u de Linux-distributie opnieuw start, wordt systemd uitgevoerd. U kunt dit controleren met behulp van de opdracht
systemctl statusom de met status en de opdrachtsystemctl list-unit-files --type=serviceweer te geven, waarmee de status wordt weergegeven van alle services die zijn gekoppeld aan uw Linux-distributie.
Als uw Linux-distributie Debian/Ubuntu/Kali Rolling is, moet u niet alleen het systeempakket hebben geïnstalleerd, maar zorg er ook voor dat het systemd-sysv-pakket is geïnstalleerd.
sudo apt-get update -y && sudo apt-get install systemd systemd-sysv -y
Kom meer te weten over de configuratie van geavanceerde instellingen in WSL, inclusief het verschil tussen de wsl.conf (distributiespecifieke) en .wslconfig (globale) configuratiebestanden, automount-instellingen bijwerken, enzovoort.
Systemd-demo's video
Microsoft is partner van Canonical om systeemondersteuning naar WSL te brengen. Zie Craig Loewen (PM voor WSL bij Microsoft) en Oliver Smith (PM voor Ubuntu op WSL bij Canonical) ondersteuning voor systemd aankondigen en enkele demo's laten zien van wat het mogelijk maakt.
Oliver's zelfstudies op basis van deze demo's op de Ubuntu-blog - bevat 'Gebruik snap om binnen enkele minuten een Nextcloud-instantie te maken op WSL', 'Beheer je webprojecten met LXD' en 'Voer een .Net Echo Bot uit als een systemd-service op Ubuntu WSL'
Voorbeelden van Systemd
Enkele voorbeelden van Linux-toepassingen die afhankelijk zijn van het systeem zijn:
snap: een softwareverpakkings- en implementatiesysteem dat is ontwikkeld door Canonical voor besturingssystemen die gebruikmaken van de Linux-kernel en het systeemd init-systeem. De pakketten worden 'snaps' genoemd, het opdrachtregelprogramma voor het bouwen van snaps heet 'Snapcraft', de centrale opslagplaats waar snaps kunnen worden gedownload/geïnstalleerd, heet de 'Snap Store', en de daemon die nodig is om snaps uit te voeren (downloaden uit de store, koppelen in plaats, beperken en apps uitvoeren) heet 'snapd'. Het hele systeem wordt soms aangeduid als 'snappy'. Voer de opdracht uit:
snap install spotify.microk8s: een opensource, low-ops, minimale productie-Kubernetes die de implementatie, schaal en het beheer van in containers geplaatste apps automatiseert. Volg de instructies voor MicroK8s installeren op WSL2, bekijk de Zelfstudie Aan de slagof bekijk de video over Kubernetes in Windows met MicroK8s en WSL 2.
systemctl: een opdrachtregelprogramma dat wordt gebruikt voor het beheren en inspecteren van systeem en om u te helpen met services op uw Linux-distributie te communiceren. Probeer de opdracht:
systemctl list-units --type=serviceom te zien welke services beschikbaar zijn en de bijbehorende status.
Een paar gerelateerde handleidingen die manieren laten zien om systemd te gebruiken.
Systemd- begrijpen en gebruiken
Systemd Essentials: Werken met de services, eenheden en het logboek
Hoe is het inschakelen van systemd van invloed op de WSL-architectuur?
Ondersteuning inschakelen voor door het systeem vereiste wijzigingen in de WSL-architectuur. Omdat systemd PID 1 vereist, wordt het WSL-initproces gestart binnen de Linux-distributie een ondergeschikt proces van systemd. Omdat het WSL-init-proces verantwoordelijk is voor het leveren van de infrastructuur voor communicatie tussen de Linux- en Windows-onderdelen, is het wijzigen van deze hiërarchie vereist om enkele van de veronderstellingen die zijn gemaakt met het WSL-init-proces te herzien. Er moesten aanvullende wijzigingen worden aangebracht om te zorgen voor een schone afsluiting (zoals het afsluiten nu wordt beheerd door het systeem) en om compatibiliteit te hebben met WSLg-, het onderdeel van WSL dat Linux Graphical User Interfaces (GUIs) uitvoert of de Linux-apps die worden weergegeven in Windows in plaats van de opdrachtregel.
Het is ook belangrijk om te weten dat met deze wijzigingen systeemservices uw WSL-exemplaar niet actief houden. Uw WSL-exemplaar blijft op dezelfde manier functioneren zoals voor deze update, waarover u meer kunt lezen in dit blogbericht over achtergrondtaakondersteuning van 2017.
Windows Subsystem for Linux