Windows10自帶的WSL是不支持systemd,也就是不能使用systemctl來控制服務(wù),但是隨著微軟的升級,目前WSL通過設(shè)置已經(jīng)可以支持systemd,給使用systemd的同學(xué)們帶來了極大的便利。下面是設(shè)置的步驟,并在Ubuntu 20.04.3 LTS中驗證通過。
1. WSL需要是從Microsoft Store下載安裝的版本,而不是Windows自帶的WSL
在命令行執(zhí)行:
C:\>wsl --version
如果結(jié)果沒有顯示如下的輸出,而是提示參數(shù)使用錯誤的信息,那使用的WSL是Windows自帶的版本,不是可用的版本,需要替換
WSL 版本: 1.0.3.0
內(nèi)核版本: 5.15.79.1
WSLg 版本: 1.0.47
MSRDC 版本: 1.2.3575
Direct3D 版本: 1.606.4
DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows版本: 10.0.19045.2486
根據(jù)微軟官方信息,WSL要求版本為0.67.6或更高版本
2. 安裝正確的WSL
打開Windows Store, 搜索WSL,搜索到后,點擊“獲取”安裝。安裝完成后,Windows自帶的WSL會被替換?;诒救说慕?jīng)驗,原有WSL中安裝的程序與數(shù)據(jù)都在。安裝完成后可以通過運行步驟1中的命令來驗證。
3. 配置使用systemd
最新版的WSL默認(rèn)也是不使用systemd的,可以通過下面的步驟配置使用
- 啟動WSL。
- 在WSL中打開終端,使用sudo vi /etc/wsl.conf編輯(或使用其他熟悉的文本編輯命令)并添加如下內(nèi)容:
[boot]
systemd=true
如果/etc/wsl.conf文件不存在,創(chuàng)建并保存
- 退出WSL,并在Windows10命令行執(zhí)行:wsl --shutdown關(guān)閉WSL,重啟WSL后,在WSL中通過
$sudo systemctl status
命令就能進(jìn)行驗證。
參考:Systemd support is now available in WSL! - Windows Command Line (microsoft.com)