Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podsystem Windows dla systemu Linux (WSL) obsługuje teraz systemd, system init i menedżer usług używany przez wiele popularnych dystrybucji systemu Linux, takich jak Ubuntu, Debian i nie tylko. (Co to jest systemd?).
Ustawienie domyślne systemu inicjowania zostało ostatnio zmienione z SystemV, a systemd jest teraz domyślnym systemem dla bieżącej wersji Ubuntu, która zostanie zainstalowana przy użyciu polecenia wsl --install domyślne. Dystrybucje systemu Linux inne niż bieżąca wersja systemu Ubuntu mogą nadal używać init WSL, podobnie jak init systemu SystemV. Aby przejść na systemd, zobacz Jak włączyć systemd.
Co to jest systemd w systemie Linux?
Zgodnie z systemd.io: "systemd jest zestawem podstawowych bloków konstrukcyjnych dla systemu Linux. Zapewnia system i menedżera usług, który działa jako PID 1 i uruchamia resztę systemu."
Przede wszystkim, jako system inicjalizacji i menedżer usług, systemd zawiera funkcje takie jak uruchamianie demonów na żądanie, montowanie i utrzymywanie punktów automatycznego montowania, obsługa migawek, oraz śledzenie procesów przy użyciu grup kontrolnych systemu Linux.
Większość głównych dystrybucji systemu Linux działających teraz w systemd sprawia, że jego włączenie w WSL przybliża doświadczenie do korzystania z Linuksa bezpośrednio na sprzęcie. Zobacz ogłoszenie wideo z demonstracjami systemd albo przykłady użycia systemd poniżej, aby dowiedzieć się więcej o tym, co systemd ma do zaoferowania.
Jak włączyć systemd?
Systemd jest teraz domyślnym rozwiązaniem dla bieżącej wersji systemu Ubuntu, która zostanie zainstalowana przy użyciu polecenia wsl --install.
Aby włączyć systemd dla innych dystrybucji Linuksa działających na WSL 2 (zmieniając domyślne ustawienie z systemv init):
Upewnij się, że twoja wersja WSL to 0.67.6 lub nowsza:
- aby sprawdzić, uruchom
wsl --version; jeśli polecenie zgłasza błądInvalid command line option: --version, należy zaktualizować program WSL; - Aby zaktualizować, uruchom
wsl --updatelub , aby pobrać najnowszą wersję ze sklepu Microsoft Store.
- aby sprawdzić, uruchom
Otwórz wiersz polecenia dystrybucji systemu Linux i wprowadź
cd /, aby uzyskać dostęp do katalogu głównego, a następniels, aby wyświetlić listę plików. Zostanie wyświetlony katalog o nazwie "etc", który zawiera plik konfiguracji programu WSL dla dystrybucji. Otwórz ten plik, aby można było wprowadzić aktualizację za pomocą edytora tekstów Nano, wprowadzając polecenie:nano /etc/wsl.conf.Dodaj następujące wiersze w pliku
wsl.conf, który jest teraz otwarty, aby zmienić inicjowanie używane do systemd:[boot] systemd=true
Zamknij edytor tekstu Nano (Ctrl + X, wpisz Y, aby zapisać zmianę i potwierdzić przy użyciu
enter).Następnie należy zamknąć dystrybucję systemu Linux. Możesz użyć polecenia
wsl.exe --shutdownw programie PowerShell, aby ponownie uruchomić wszystkie wystąpienia programu WSL.Po ponownym uruchomieniu dystrybucji systemu Linux systemd będzie działał. Możesz to sprawdzić przy użyciu polecenia
systemctl status, aby wyświetlić uruchomiony stan i poleceniesystemctl list-unit-files --type=service, które pokaże stan wszystkich usług skojarzonych z dystrybucją systemu Linux.
Jeśli dystrybucja systemu Linux to Debian/Ubuntu/Kali Rolling, nie tylko powinien być zainstalowany pakiet systemowy, ale także upewnij się, że pakiet systemd-sysv jest zainstalowany.
sudo apt-get update -y && sudo apt-get install systemd systemd-sysv -y
Dowiedz się więcej na temat konfiguracji zaawansowanych ustawień w WSL, w tym różnicy między plikiem konfiguracji specyficznym dla dystrybucji wsl.conf a plikiem konfiguracji globalnym .wslconfig, jak zaktualizować ustawienia montowania automatycznego itp.
Film demonstracyjny systemd
Firma Microsoft współpracuje z firmą Canonical w celu zapewnienia obsługi systemu WSL. Zobacz, jak Craig Loewen (PM dla WSL w Microsoft) i Oliver Smith (PM dla Ubuntu na WSL w Canonical) ogłaszają wsparcie dla systemd i prezentują kilka demonstracji tego, co umożliwia.
Poradniki Olivera oparte na tych prezentacjach na Ubuntu Blogu — zawiera temat "Utworzyć instancję Nextcloud w kilka minut z pomocą Snap na WSL", "Zarządzanie projektami webowymi za pomocą LXD" i "Uruchamianie bota Echo platformy .Net jako usługi systemd na Ubuntu WSL"
pokaz mikrok8s Craiga w witrynie GitHub
Przykłady systemu
Oto kilka przykładów aplikacji systemu Linux, które są zależne od systemu:
snap: system pakowania i wdrażania oprogramowania opracowany przez firmę Canonical dla systemów operacyjnych korzystających z jądra Linux i systemowego systemu init systemd. Pakiety nazywane są "snaps", narzędzie wiersza polecenia do tworzenia snapów nosi nazwę "Snapcraft", centralne repozytorium, w którym można pobrać/zainstalować snaps, nosi nazwę "Snap Store", a demon wymagany do uruchamiania snapów (pobieranie ze sklepu, montowanie na miejscu, izolowanie i uruchamianie aplikacji z nich) nazywany jest "snapd". Cały system jest czasami nazywany "snappy". Spróbuj uruchomić polecenie:
snap install spotify.mikrok8s: otwartoźródłowy, niskiego nakładu pracy, minimalny Kubernetes do produkcyjnego użytku, który automatyzuje wdrażanie, skalowanie i zarządzanie aplikacjami w kontenerach. Postępuj zgodnie z instrukcjami, aby zainstalować MicroK8s naWSL2, zapoznaj się z samouczkiemlub obejrzyj wideo o Kubernetes w systemie Windows za pomocą MicroK8s i WSL 2.
systemctl: narzędzie wiersza polecenia używane do kontrolowania i inspekcji systemu oraz ułatwia interakcję z usługami w dystrybucji systemu Linux. Spróbuj wykonać polecenie:
systemctl list-units --type=service, aby zobaczyć, które usługi są dostępne i ich stan.
Kilka powiązanych samouczków demonstrujących sposoby korzystania z systemu:
Systemd Essentials: Praca z usługami, jednostkami i dziennikiem
Jak umieścić procesy w sandboksie za pomocą systemd w Ubuntu 20.04
Jak włączenie systemu wpływa na architekturę WSL?
Włączenie obsługi dla systemd wymagało zmian w architekturze WSL. Systemd wymaga PID 1, więc proces inicjowania WSL uruchomiony w dystrybucji systemu Linux staje się procesem podrzędnym systemd. Ponieważ proces inicjowania WSL jest odpowiedzialny za zapewnienie infrastruktury komunikacji między składnikami systemu Linux i Windows, zmiana tej hierarchii wymaga ponownego przemyślenia niektórych założeń wprowadzonych w procesie inicjowania WSL. Należy wprowadzić dodatkowe modyfikacje w celu zapewnienia czystego zamknięcia (ponieważ zamknięcie jest teraz kontrolowane przez systemd) i aby zapewnić zgodność z WSLg, składnik WSL, który uruchamia graficzne interfejsy użytkownika systemu Linux (GUI) lub aplikacje systemu Linux, które są wyświetlane w oknach, a nie wiersz polecenia.
Należy również pamiętać, że w przypadku tych zmian usługi systemd nie będą utrzymywać działania wystąpienia WSL. Instancja WSL pozostanie aktywna w taki sam sposób jak przed tą aktualizacją, o czym można dowiedzieć się więcej w tym wpisie na blogu Background Task Support (Obsługa zadań w tle) z 2017 r..
Windows Subsystem for Linux