This guide will enable systemd to run as normal under WSL 2. This will enable services like microk8s, docker and many more to just work during a WSL session. Note: this was tested on Windows 10 Build 2004, running Ubuntu 20.04 LTS in WSL 2.
-
To enable
systemdunder WSL we require a tool calledsystemd-genie -
Copy the contents of
install-sg.shto a new file/tmp/install-sg.sh:cd /tmp wget --content-disposition \ "https://gist.githubusercontent.com/djfdyuruiry/6720faa3f9fc59bfdf6284ee1f41f950/raw/952347f805045ba0e6ef7868b18f4a9a8dd2e47a/install-sg.sh"
-
Make it executable:
chmod +x /tmp/install-sg.sh
-
Run the new script:
/tmp/install-sg.sh && rm /tmp/install-sg.sh -
Exit the WSL terminal and shutdown the WSL env:
wsl --shutdown
-
To open a new WSL terminal with
systemdenabled, run:wsl genie -s -
Prove that it works:
sudo systemctl status time-sync.target
Invoke-WebRequest -Uri https://gist.githubusercontent.com/bplasmeijer/2e49315d4194046d32fd74ae8a3dafda/raw/f19833166a223f6b119bed9c2f1eccd402100dcf/get-full-windows-version.ps1 -OutFile .\version.ps1 ; .\version.ps1