Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Sottosistema Windows per Linux (WSL) supporta ora systemd, un sistema init e un gestore dei servizi usati da molte distribuzioni Linux più diffuse, ad esempio Ubuntu, Debian e altro ancora. (Che cos'è systemd?).
Il sistema init predefinito è stato modificato di recente da SystemV, con systemd ora come predefinito per la versione corrente di Ubuntu che verrà installata usando il comando predefinito wsl --install. Le distribuzioni linux diverse dalla versione corrente di Ubuntu possono comunque usare l'init WSL, simile a SystemV init. Per passare a systemd, vedere Come abilitare systemd.
Che cos'è systemd in Linux?
Secondo systemd.io: "systemd è una suite di blocchi predefiniti di base per un sistema Linux. Fornisce un sistema e un gestore di servizi che viene eseguito come PID 1 e avvia il resto del sistema."
Principalmente un sistema init e un gestore di servizi, systemd include funzionalità come l'avvio su richiesta di demoni, la manutenzione dei punti di montaggio e di montaggio automatico, il supporto degli snapshot e il monitoraggio dei processi utilizzando i gruppi di controllo di Linux.
La maggior parte delle principali distribuzioni Linux ora utilizza systemd, quindi abilitarlo in WSL rende l'esperienza ancora più simile all'uso di Linux bare-metal. Vedere l'annuncio video di con demo di sistema o esempi di uso di systemd di seguito per altre informazioni su cosa offre systemd.
Come abilitare systemd?
Systemd è ora l'impostazione predefinita per la versione corrente di Ubuntu che verrà installata usando il comando wsl --install predefinita.
Per abilitare systemd per qualsiasi altra distribuzione Linux in esecuzione in WSL 2 (modificando il valore predefinito da usando systemv init):
Assicurarsi che la versione di WSL sia 0.67.6 o successiva:
- per verificare, eseguire
wsl --version; se il comando generaInvalid command line option: --versionerrore, è necessario aggiornare WSL; - per aggiornare, eseguire
wsl --updateo , scaricare la versione più recente da Microsoft Store.
- per verificare, eseguire
Aprire una riga di comando per la distribuzione linux e immettere
cd /per accedere alla directory radice, quindilsper elencare i file. Verrà visualizzata una directory denominata "etc" che contiene il file di configurazione WSL per la distribuzione. Aprire questo file in modo che sia possibile eseguire un aggiornamento con l'editor di testo Nano immettendo:nano /etc/wsl.conf.Aggiungere queste righe nel file
wsl.confora aperto per modificare l'init usato per systemd:[boot] systemd=true
Uscire dall'editor di testo Nano (CTRL+X, digitare Y per salvare la modifica e confermare con il tasto
enter).Sarà quindi necessario chiudere la distribuzione linux. È possibile usare il comando
wsl.exe --shutdownin PowerShell per riavviare tutte le istanze WSL.Dopo aver riavviato la distribuzione linux, systemd sarà in esecuzione. È possibile verificarlo usando il comando
systemctl statusper visualizzare il in esecuzione stato e il comandosystemctl list-unit-files --type=service, che mostrerà lo stato di tutti i servizi associati alla distribuzione Linux.
Se la distribuzione linux è Debian/Ubuntu/Kali Rolling, non è necessario aver installato solo il pacchetto systemd, ma anche assicurarsi che il pacchetto systemd-sysv sia installato.
sudo apt-get update -y && sudo apt-get install systemd systemd-sysv -y
Scopri di più sulla configurazione delle impostazioni avanzate in WSL, inclusa la differenza tra i file di configurazione wsl.conf (specifici della distribuzione) e .wslconfig (globali), come aggiornare le impostazioni di automontaggio e così via.
Video demo di sistema
Microsoft ha collaborato con Canonical per portare il supporto systemd a WSL. Vedere Craig Loewen (PM for WSL at Microsoft) e Oliver Smith (PM for Ubuntu on WSL at Canonical) annunciare il supporto systemd e mostrare alcune demo di ciò che abilita.
Le esercitazioni di Oliver basate su queste demo nel blog di Ubuntu: includono "Usa snap per creare un'istanza di Nextcloud in pochi minuti su WSL" (Use snap to create a Nextcloud instance in minutes on WSL), "Gestire i progetti web con LXD" (Manage your web projects with LXD) e "Eseguire un bot Echo .Net come servizio systemd in Ubuntu WSL" (Run a .Net Echo Bot as a systemd service on Ubuntu WSL)
demo microk8s di Craig su GitHub
Esempi di systemd
Di seguito sono riportati alcuni esempi di applicazioni Linux che dipendono dal sistema:
snap: un sistema di creazione di pacchetti software e distribuzione sviluppato da Canonical per i sistemi operativi che usano il kernel Linux e il sistema systemd init. I pacchetti sono denominati "snap", lo strumento da riga di comando per la creazione di snap è denominato "Snapcraft", il repository centrale in cui è possibile scaricare/installare gli snap è denominato "Snap Store" e il daemon necessario per eseguire snap (download dallo Store, montare sul posto, limitare ed eseguire le app fuori) è denominato "snapd". L'intero sistema viene talvolta definito "snappy". Provare a eseguire il comando :
snap install spotify.microk8s: un Kubernetes open source, a bassa manutenzione, per ambienti di produzione minimali, che automatizza la distribuzione, il ridimensionamento e la gestione delle applicazioni containerizzate. SEGUI LE ISTRUZIONI per Installare MicroK8s su WSL2, consulta il tutorial Introduzione, oppure guarda il video su Kubernetes su Windows con MicroK8s e WSL 2.
systemctl: un'utilità della riga di comando usata per controllare ed esaminare il sistema e per interagire con i servizi nella distribuzione Linux. Provare il comando :
systemctl list-units --type=serviceper vedere quali servizi sono disponibili e il relativo stato.
Alcune esercitazioni correlate illustrano i modi per usare systemd:
Systemd Essentials: Utilizzo dei servizi, delle unità e del registro
come eseguire la sandbox dei processi con Systemd in Ubuntu 20.04
In che modo l'abilitazione del sistema influisce sull'architettura WSL?
Abilitare il supporto per systemd ha richiesto modifiche all'architettura di WSL. Poiché systemd richiede PID 1, il processo init WSL avviato all'interno della distribuzione Linux diventa un processo figlio del sistema. Poiché il processo init WSL è responsabile della fornitura dell'infrastruttura per la comunicazione tra i componenti Linux e Windows, la modifica di questa gerarchia richiedeva un ripensamento di alcuni dei presupposti effettuati con il processo init WSL. Sono state apportate modifiche aggiuntive per garantire un arresto pulito (in quanto l'arresto è controllato da systemd now) e per avere la compatibilità con WSLg, il componente di WSL che esegue interfacce utente grafiche Linux (GUIs) o le app Linux visualizzate in windows anziché la riga di comando.
È anche importante notare che con queste modifiche, i servizi di sistema non manterranno attiva l'istanza WSL. L'istanza di WSL rimarrà attiva nello stesso modo in cui è stata eseguita in precedenza a questo aggiornamento, che è possibile leggere altre informazioni in questo post di blog del supporto attività in background di 2017.
Windows Subsystem for Linux