在 Windows 10/11 上使用 WSL 2(Windows 子系統 Linux)時,許多進階功能(如 snap、完整的服務管理等)都需要 systemd 的支援。自 2022 年起,WSL 2 已正式支援 systemd,但需要手動開啟。本文將一步步教你在 WSL 2 下開啟 systemd,讓你的 Ubuntu(或其他發行版)享有完整的 Linux 服務體驗。
為什麼要啟用 systemd?
- 支援 snapd、Docker、minikube 等服務,這些都仰賴 systemd 作為服務管理器。
- 更貼近原生 Linux 環境,許多工具、程式、桌面應用都依賴 systemd。
- 能用 systemctl 操作所有服務,如啟動/停止/重啟服務,與實體主機無異。
步驟教學
步驟 1:確認 WSL 版本與核心
打開 Windows 命令提示字元或 PowerShell,輸入:
wsl --version
- WSL 版本須為 2.x.x(只要是 WSL 2 都沒問題)
- 核心建議大於 5.10
如果還是 WSL 1,請升級:
wsl --set-version <你的發行版名稱> 2
例如 wsl --set-version Ubuntu-22.04 2
步驟 2:編輯 wsl.conf 啟用 systemd
進入你的 WSL 2(例如 Ubuntu):
wsl
使用 vim 編輯 /etc/wsl.conf
(沒有請先安裝 sudo apt install vim
):
sudo vim /etc/wsl.conf
在檔案內新增下列內容:
[boot]
systemd=true
儲存並離開。
步驟 3:完全關閉並重啟 WSL
執行以下指令完全關閉所有 WSL 實例:
wsl --shutdown
然後重新開啟你的 WSL 2 終端機。
步驟 4:確認 systemd 已成功啟動
在新的 WSL 終端中輸入:
ps -p 1 -o comm=
- 若顯示
systemd
,恭喜,systemd 已經啟用!
- 若顯示
init
、bash
或其他,表示還沒生效,請確認 /etc/wsl.conf
設定是否正確並重試。
步驟 5:測試 systemctl 及 snapd
測試 systemctl 指令:
sudo systemctl status
安裝並啟用 snapd(如需):
sudo apt update
sudo apt install snapd
sudo systemctl enable --now snapd
測試 snap 指令:
snap list
常見問題
Q1:開啟後還是沒有 systemd?
- 檢查
/etc/wsl.conf
是否正確儲存,並務必執行 wsl --shutdown
再重新啟動。
- 確認你的 WSL 2 核心已更新,建議至 官方 GitHub 下載最新版 WSL。
- 某些防毒軟體或安全性設定會影響 WSL systemd 啟動。
Q2:snapd 啟動還是失敗?
結語
WSL 2 正式支援 systemd 讓 Linux 用戶在 Windows 下也能享有完整服務管理體驗,執行 snap、Docker 等進階應用不再受限。只需簡單設定,就能徹底解放你的 Linux 生態系!