Skip to content

Håll WSL-distributionen vid liv (keep-alive) ​

Många som är nya på WSL2 stöter på en "gåta": man har installerat Linux, men varför "stängs det av av sig själv" en stund efter att man stängt terminalen? Varför kan det inte bara fortsätta köra?

Den här artikeln beskriver först fenomenet, förklarar sedan varför Microsoft designade WSL så, och visar slutligen hur du startar en vid liv hållen (keep-alive) Linux-distribution med hjälp av WSL Dashboard.

1. Nuläge: efter att terminalen stängs stängs Linux snart av automatiskt ​

Har du varit med om följande?

  1. Du öppnar terminalen för en Linux-distribution och Linux startar automatiskt, utan att du behöver köra något kommando;
  2. När du stänger terminalfönstret fortsätter inte Linux att köra: efter ungefär 60 sekunder stängs det av automatiskt;
  3. Du öppnar terminalen igen och Linux startar automatiskt igen, och så vidare, i en oändlig loop.

NOTE

WSL2:s standard "timeout för inaktivitet" är cirka 60 sekunder: när det inte finns några processer som kör i distributionen (till exempel när du har stängt alla terminaler) stängs WSL:s virtuella maskin av automatiskt för att frigöra systemresurser som minne.

Detta beteende är WSL2:s standarddesign: det är varken ett fel eller ett misstag.

2. Varför designade Microsoft WSL så? ​

2.1 WSL2 är i grunden en lättvikts-virtuell maskin ​

WSL2 kör en komplett Linux-kärna via en lättvikts-virtuell maskin (utility VM) i Hyper-V. Varje distribution som körs tar faktiskt upp minnesresurser. Om alla distributioner låg kvar i bakgrunden skulle en maskin som kör flera distributioner samtidigt slösa bort hundratals MB, eller till och med flera GB, minne och göra hela datorn långsammare.

2.2 Designfilosofin: resurser allokeras vid behov ​

Windows designfilosofi är "allokera resurser vid behov och släpp dem när de inte används":

  • för de flesta användare: öppna terminalen = du behöver Linux; stäng terminalen = du behöver det inte just nu;
  • endast ett fåtal användare behöver Linux som kör 7×24 timmar utan uppehåll.

Därför tillämpar WSL strategin "starta vid behov, stoppa vid inaktivitet", så att resurser som minne automatiskt lämnas tillbaka till systemet när de inte behövs.

2.3 Liknelse: släck lampan när du lämnar rummet ​

WSL:s "automatiska avstängning vid inaktivitet" är som att släckas lampan när man lämnar rummet: det sparar energi och är effektivare. Men för den som vill att "rummet alltid ska vara upplyst" är det besvärligt: det är just därifrån behovet av keep-alive kommer.

TIP

Om du behöver att Linux kör permanent (till exempel för att driftsätta tjänster, köra schemalagda uppgifter eller bygga en utvecklingsserver), läs nästa kapitel och använd WSL Dashboard för att hålla distributionen vid liv.

3. Starta en vid liv hållen Linux med WSL Dashboard ​

WSL Dashboard erbjuder två enkla sätt att hålla din Linux-distribution igång.

Sätt 1: klicka på knappen "Starta" ​

I listan "Installerade Linux-distributioner" i WSL Dashboard:

  1. hitta den distribution du vill hålla vid liv;
  2. klicka på "Starta"-knappen på den distributionens rad.

Efter klicket vaknar distributionen omedelbart och fortsätter att köra: så länge du inte stoppar den själv stängs den inte av automatiskt på grund av inaktivitet. Detta sätt passar för tillfälliga keep-alive-scenarier när Linux behöver köra "just nu".

Sätt 2: markera "Starta automatiskt vid Windows-start." ​

I listan "Installerade Linux-distributioner" i WSL Dashboard:

  1. klicka på "Inställningar"-knappen på raden för distributionen för att öppna inställningsfönstret;
  2. markera "Starta automatiskt vid Windows-start." i fönstret;
  3. spara inställningarna.

När du har markerat detta startar distributionen automatiskt vid varje Windows-start/inloggning, utan någon manuell åtgärd: keep-alive direkt vid uppstart. Detta sätt passar för scenarier där Linux behöver vara online under lång tid (som utvecklingsservrar eller permanenta tjänster).

TIP

  • Endast tillfälligt behov → använd sätt 1 (klicka på "Starta");
  • Behöver vara online under lång tid → använd sätt 2 (markera "Starta automatiskt vid Windows-start.").