WSL中的服務不會隨着Windows系統啟動而啟動,需要人工去啟動它。
但我們可以使用批處理腳本來達到開機啟動WSL中服務程序的目的。
- 創建一個批處理文件。比如命名為
init.bat
,內容如下
cd /d %~dp0
ubuntu2004.exe run /etc/init.d/ssh start
:: 其他更多需要啟動的服務
我是手動下載安裝的WSL,所以用的是ubuntu2004.exe
程序來執行。
如果是從微軟應用商店安裝的可以嘗試將命令改為wsl -d ubuntu -u root /etc/init.d/ssh start
。
- 在Windows中創建一個新的任務計划程序。
運行taskschd.msc
打開任務計划管理器,創建一個新的任務計划,設置為不管用戶是否登錄都要運行
,並且以安裝了WSL的那個用戶的身份來運行此任務,因為WSL環境是和用戶綁定的。
觸發器設置為開機啟動
這樣保證了Windows啟動后即使沒有用戶登錄也能開啟服務(服務器場景)。