Megosztás:


Linux-szolgáltatások kezelése a WSL segítségével a systemd használatával

A Windows Subsystem for Linux (WSL) mostantól támogatja a systemd, egy init rendszer és szolgáltatáskezelő használatát, amelyet számos népszerű Linux-disztribúció, például az Ubuntu, a Debian stb. használ. (Mi a rendszerezett?).

Az inicializálási rendszer alapértelmezése nemrég megváltozott a SystemV-ről, és most már az alapértelmezett Ubuntu verziója, amely az alapértelmezett wsl --install paranccsal lesz telepítve. Az Ubuntu jelenlegi verziójától eltérő Linux-disztribúciók továbbra is használhatják a WSL initet, hasonlóan a SystemV inithez. A systemd-re való váltáshoz lásd a következő részt: Hogyan lehet engedélyezni a systemd-t.

Mi a Rendszer a Linuxban?

Szerint systemd.io: "A systemd egy csomag az alapvető építőelemekből egy Linux rendszer számára. Olyan rendszer- és szolgáltatáskezelőt biztosít, amely PID 1 néven fut, és elindítja a rendszer többi részét."

A systemd elsősorban init rendszer- és szolgáltatáskezelő, olyan funkciókkal rendelkezik, mint a démonok igény szerinti indítása, a csatlakoztatási és automatikus csatlakoztatási pontok karbantartása, a pillanatképek támogatása és a Folyamatok nyomon követése Linux-vezérlőcsoportok használatával.

A legtöbb fő Linux-disztribúció már rendszerezetten fut, így a WSL-en való engedélyezése még közelebb hozza a felhasználói élményt a operációs rendszer nélküli Linux használatához. Tekintse meg az alábbiakban a videobejelentést a systemd demókkal vagy a systemd használatára vonatkozó példákat, hogy többet megtudjon arról, mit kínál a systemd.

Hogyan lehet engedélyezni a systemd-t?

A Systemd mostantól az alapértelmezett az Ubuntu jelenlegi verziójához, amely az alapértelmezett wsl --install paranccsal lesz telepítve.

A systemd engedélyezése a WSL 2-n futó egyéb Linux disztribúciók számára (ami módosítja az alapértelmezett beállítást a systemv init használatáról):

  1. Győződjön meg arról, hogy a WSL-verzió a 0.67.6-os vagy újabb:

  2. Nyisson meg egy parancssort a Linux-disztribúcióhoz, és írja be a cd / a gyökérkönyvtár eléréséhez, majd ls a fájlok listázásához. Megjelenik egy "etc" nevű könyvtár, amely tartalmazza a terjesztési WSL-konfigurációs fájlt. Nyissa meg ezt a fájlt, hogy frissítést végezzen a Nano szövegszerkesztővel a következő parancs beírásával: nano /etc/wsl.conf.

  3. Adja hozzá ezeket a sorokat a most megnyitott wsl.conf fájlhoz az init rendszer systemd-re cseréléséhez:

    [boot]
    systemd=true
    

    A WSL 2 rendszeren való engedélyezése

  4. Lépjen ki a Nano szövegszerkesztőből (Ctrl + X, írja be az Y billentyűt a módosítás mentéséhez, és erősítse meg a enter kulccsal).

  5. Ezután be kell zárnia a Linux-disztribúciót. A PowerShellben a wsl.exe --shutdown parancs használatával újraindíthatja az összes WSL-példányt.

  6. A Linux-disztribúció újraindítása után a rendszer fut. A systemctl status paranccsal ellenőrizheti a állapotot futtató és a systemctl list-unit-files --type=serviceparancsot, amely megjeleníti a Linux-disztribúcióhoz társított szolgáltatások állapotát.

Ha az Ön Linux-disztribúciója Debian/Ubuntu/Kali Rolling, akkor nemcsak a systemd csomagot kellene telepítenie, hanem a systemd-sysv csomagot is.

sudo apt-get update -y && sudo apt-get install systemd systemd-sysv -y

További információ a Speciális beállítások konfigurációjáról a WSL-ben, beleértve a wsl.conf (disztribúcióspecifikus) és a .wslconfig (globális) konfigurációs fájlok közötti különbséget, az automount beállítások frissítését stb.

Systemd bemutató videó

A Microsoft a Canonicalnel együttműködve rendszerszintű támogatást nyújtott a WSL-nek. Lásd Craig Loewen-t (a Microsoft WSL programmenedzserét) és Oliver Smith-t (a Canonical Ubuntu-WLS programmenedzserét), amint bejelentik a systemd támogatást, és bemutatnak néhány példát arra, mit tesz ez lehetővé.

Rendszerezett példák

Olyan Linux-alkalmazásokra vonatkozó néhány példa, amelyek rendszerfüggők a systemd-re:

  • snap: a Canonical által a Linux kernelt és a systemd init rendszert használó operációs rendszerekhez kifejlesztett szoftvercsomagoló és üzembehelyezési rendszer. A csomagokat "snaps"-nak hívják, a snaps-ok létrehozásához használt parancssori eszköz neve "Snapcraft", a központi adattár, ahol a snaps-ok letölthetők/telepíthetők, "Snap Store"-ként ismert, és a snaps-ok futtatásához szükséges démon (amely az áruházból való letöltést, helyükre történő csatlakoztatást, korlátozást és az alkalmazások futtatását végzi) "snapd" néven ismert. Az egész rendszert "snappy"-nak is nevezik. Futtassa a következő parancsot: snap install spotify.

  • microk8s: nyílt forráskódú, alacsony üzemű, minimális üzemi Kubernetes, amely automatizálja a tárolóalapú alkalmazások üzembe helyezését, méretezését és felügyeletét. Kövesse az utasításokat a MicroK8s WSL2 telepítéséhez, tekintse meg az Első lépések útmutatót, vagy nézze meg a videót a Kubernetes használatáról Windows-on a MicroK8s és WSL 2 segítségével.

  • systemctl: egy parancssori segédprogram, amely a rendszerezett rendszerek vezérlésére és vizsgálatára, valamint a Linux-disztribúció szolgáltatásaival való interakcióra szolgál. Próbálja ki a következő parancsot: systemctl list-units --type=service, hogy mely szolgáltatások érhetők el, és milyen állapotban vannak.

Néhány kapcsolódó oktatóanyag, amely bemutatja, hogyan használhatjuk a systemd különböző módokon:

Hogyan befolyásolja a systemd engedélyezése a WSL-architektúrát?

A WSL-architektúra rendszerszintű támogatásának engedélyezése szükséges módosításokat igényel. Mivel a rendszer a PID 1-et igényli, a Linux-disztribúción belül elindított WSL init folyamat a rendszerezett gyermekfolyamatává válik. Mivel a WSL init-folyamat felelős a Linux és a Windows-összetevők közötti kommunikáció infrastruktúrájának biztosításáért, a hierarchia megváltoztatásához újra kellett gondolni a WSL init-folyamat néhány feltételezését. További módosításokat kellett tenni a tiszta leállítás biztosítása érdekében (mivel a leállítást a rendszer most szabályozza), és hogy kompatibilis legyen WSLg, a Linux grafikus felhasználói felületeket (GUI-kat) futtató WSL összetevőjével vagy a parancssor helyett a Windowsban megjelenő Linux-alkalmazásokkal.

Azt is fontos megjegyezni, hogy ezekkel a módosításokkal a systemd szolgáltatások NEM fogják működésben tartani a WSL-példányt. A WSL-példány életben marad ugyanúgy, mint a frissítés előtti állapotában, amelyről többet olvashat a 2017-es háttérfeladat-támogatásról szóló blogbejegyzésben.