Skip to content

Ohranjanje distribucij WSL v delovanju ​

Mnogi uporabniki, ki šele začenjajo z WSL2, naletijo na "zmedo": Linux je nameščen, zakaj pa se po zaprtju terminala čez nekaj časa "samodejno ugasne"? Zakaj ne more kar naprej delovati?

Ta članek najprej opiše ta pojav, nato pojasni, zakaj je Microsoft WSL zasnoval tako, in na koncu pokaže, kako z WSL Dashboard zaženete distribucijo Linuxa s keep-alive (ohranjanjem v delovanju).

1. Trenutno stanje: po zaprtju terminala se Linux hitro samodejno ugasne ​

Ste že doživeli naslednji scenarij?

  1. Odprete terminal neke distribucije Linuxa in Linux se samodejno zažene brez izvedbe kakršnega koli ukaza;
  2. Po zaprtju okna terminala Linux ne nadaljuje z delovanjem — po približno 60 sekundah se samodejno ugasne;
  3. Ko znova odprete terminal, se Linux spet samodejno zažene in tako se ponavlja v nedogled.

NOTE

Privzeti "čas mirovanja" (idle timeout) WSL2 je približno 60 sekund: ko v distribuciji ne teče noben proces (na primer ko zaprete vse terminale), se navidezni stroj WSL samodejno ugasne, da sprosti sistemske vire, kot je pomnilnik.

To vedenje je privzeta zasnova WSL2 — ni niti okvara niti napaka.

2. Zakaj je Microsoft WSL zasnoval tako? ​

2.1 WSL2 je v bistvu lahek navidezni stroj ​

WSL2 poganja celotno jedro Linuxa v lahkem navideznem stroju Hyper-V (utility VM). Vsaka delujoča distribucija dejansko zaseda pomnilniške vire. Če bi vse distribucije stalno delovale v ozadju in bi en stroj hkrati poganjal več distribucij, bi se zapravilo nekaj sto MB ali celo nekaj GB pomnilnika, kar bi upočasnilo celoten sistem.

2.2 Filozofija dodeljevanja virov na zahtevo ​

Dizajnerska filozofija sistema Windows je "vire dodeli na zahtevo, neuporabljene sprosti":

  • Za večino uporabnikov: odprt terminal = potrebujem Linux; zaprt terminal = trenutno ga ne potrebujem;
  • Le redki uporabniki potrebujejo Linux, ki deluje 7×24 ur neprekinjeno.

Zato WSL uporablja strategijo "zaženi na zahtevo, ustavi ob mirovanju", tako da se pomnilnik in drugi viri samodejno vrnejo sistemu, ko niso potrebni.

2.3 Analogija: ugasni luč, ko zapustiš sobo ​

Samodejno ugašanje WSL ob mirovanju je kot ugašanje luči ob odhodu iz sobe: varčuje z energijo in je učinkovitejše. Za ljudi, ki "potrebujejo, da luč vedno gori", pa je to nadležno — prav od tod izvira potreba po ohranjanju v delovanju (keep-alive).

TIP

Če potrebujete, da Linux deluje stalno (npr. za nameščanje storitev, izvajanje načrtovanih opravil, zagon razvojnega strežnika itd.), preberite naslednje poglavje in z WSL Dashboard ohranite distribucijo v delovanju.

3. Zagon Linuxa z ohranjanjem v delovanju z WSL Dashboard ​

WSL Dashboard ponuja dva preprosta načina, kako distribucijo Linuxa ohraniti v delovanju.

Način 1: Kliknite gumb "Zaženi" ​

V seznamu "Nameščene distribucije Linuxa" v WSL Dashboard:

  1. Poiščite distribucijo, ki jo želite ohranjati v delovanju;
  2. Kliknite gumb "Zaženi" v vrstici te distribucije.

Po kliku se distribucija takoj prebudi in neprekinjeno deluje; dokler je sami aktivno ne ustavite, se zaradi mirovanja ne bo samodejno ugasnila. Ta način je primeren za začasno ohranjanje v delovanju, ko potrebujete, da Linux deluje "zdaj".

Način 2: Potrdite polje "Samodejno zaženi to distribucijo ob zagonu Windows." ​

V seznamu "Nameščene distribucije Linuxa" v WSL Dashboard:

  1. Kliknite gumb "Nastavitve" v vrstici ciljne distribucije, da odprete pogovorno okno z nastavitvami;
  2. V pogovornem oknu potrdite "Samodejno zaženi to distribucijo ob zagonu Windows.";
  3. Shranite nastavitve.

Po potrditvi se bo distribucija samodejno zagnala ob vsakem zagonu/prijavi v Windows, brez kakršnih koli ročnih dejanj — "v delovanju takoj ob zagonu". Ta način je primeren za scenarije, kjer mora biti Linux dolgoročno na spletu (npr. razvojni strežnik, stalne storitve).

TIP

  • Samo začasna potreba → uporabite Način 1 (kliknite "Zaženi");
  • Dolgoročna potreba po spletu → uporabite Način 2 (potrdite "Samodejno zaženi to distribucijo ob zagonu Windows.").