Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision.
Windows Subsystem for Linux, eller WSL, är ett utmärkt sätt för utvecklare som behöver köra Linux och Windows att göra det utan att behöva konfigurera en virtuell maskin eller dubbelstart.
En stor nyhet är möjligheten att köra systemd på WSL, vilket är användbart för webbutvecklare som ställer in testmiljöer lokalt. Så här aktiverar och använder du det.
Varför installera systemd på WSL?
WSL-tjänster kör som standard den äldre System V init-tjänsten och tjänsterna startas med servicekommandot. I september 2022, Microsoft lade till alternativet att använda systemd för att hantera tjänster. De flesta större Linux-distributioner har redan ändrats till systemd.
Trots kontroversen, i verklig användning, är det mycket enklare att starta och stoppa tjänster med systemd. Det är också lättare att följa med andra Linux-tutorials eftersom du inte behöver byta runt kommandon lika mycket.
En lokal LAMP-testmiljö kommer att vara närmare en vanlig Linux-server, så din app blir lättare att felsöka.
Hur man aktiverar systemd på WSL
För att aktivera systemd måste du köra rätt version av WSL. systemd kräver WSL version 0.67.6 eller högre. Du kan kontrollera versionsnumret genom att öppna PowerShell och skriva:
wsl --version
Om du har en äldre version installerad och vill använda systemd kan du uppdatera WSL med:
wsl --uppdatering
Nu måste du ställa in systemd i valfri distro som du har installerat med WSL. Processen är densamma på vilken WSL-distro som helst, oavsett om det är Ubuntu, Debian, Fedora eller något annat.
Redigera helt enkelt /etc/wsl.conf fil i ditt system som root och lägg till dessa rader:
[känga]
systemd=Sann
Om filen wsl.conf inte finns, oroa dig inte och fortsätt genom att skapa den själv. Dessa linjer kommer att fungera oavsett.
Spara filen och nu måste du starta om alla körande WSL-distros. För att göra detta, öppna ett PowerShell-fönster och skriv detta kommando:
wsl --stänga av
Öppna en annan terminal så kommer du att kunna hantera tjänster med systemd på WSL.
Starta och stoppa WSL-tjänster med systemd
Du kan nu använda systemctl för att starta och stoppa tjänster i WSL.
Anta att du använde Apache för att köra en lokal webbserver för att testa en webbapp du utvecklade.
Du skulle starta Apache så här:
sudosystemctlStartapache2.service
Om du ville att den skulle starta automatiskt, skulle du aktivera den med:
sudo systemctl aktivera apache2.service
Och inaktivera den med:
sudosystemctlslutaapache2.service
Nu kan du köra systemd på WSL
Med de senaste uppdateringarna till WSL kan du nu aktivera systemd och starta och stoppa tjänster när du behöver dem. Detta gör WSL till en bra miljö för att utveckla webbapplikationer, eftersom du kan testa dem som om du använde vilken annan standard Linux-maskin som helst.
Det är också extremt enkelt att installera en LAMP-server (Linux, Apache, MySQL, PHP) på Windows Subsystem för Linux.