WSL WSL2 服務自啟動 / WSL ssh 開機自啟動
網上有很多方法,要麼過於複雜,要麼已經過時,下面這個方法是最簡潔,最有效的方法
我的環境是windows10,Ubuntu 20.04.4 LTS,WSL發行版的名字是Ubuntu
進入任意WSL發行版中,建立並編輯檔案:vim /etc/init.wsl
#!/bin/sh
/etc/init.d/cron $1
/etc/init.d/ssh $1
/etc/init.d/supervisor $1
裡面呼叫了我們希望啟動的三個服務的啟動指令碼,設定/etc/init.wsl許可權777,這時候可以通過:
sudo /etc/init.wsl [start|stop|restart]
來啟停我們需要的服務,在Windows中,開始
shell:startup
在開啟的資料夾中按照你WSL使用的Linux發行版建立啟動指令碼,比如建立的Debian.vbs檔案:
Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d debian -u root /etc/init.wsl start", vbhide
這個指令碼就會在你登陸的時候自動在名字為debian的wsl發行版中執行/etc/init.wsl啟動我們的服務了,
而如果你不知道自己的 WSL 發行版叫做什麼名字,可以用 “wsl -l" 來檢視。不管你用最初的 bash (ubuntu 16.04) 還是商店裡下載的 debian/ubuntu1804 都能順利啟動服務了。
如果你用的是Ubuntu-18.04 LTS的發行版,那麼修改上面腳本里的debian為Ubuntu-18.04,並建立ubuntu1804.vbs:
Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d Ubuntu-18.04 -u root /etc/init.wsl start", vbhide
而如果你不知道自己的WSL發行版叫做什麼名字,可以用wsl -l來檢視。
WSL中有很多有用的服務,你可以按需刪改/etc/init.wsl,但沒必要塞很多東西進去影響你的啟動速度,比如mysql/mongodb這些重度服務,可以需要的時候再啟動,用完就停了。
https://zhuanlan.zhihu.com/p/47733615
https://www.cnblogs.com/sinicheveen/p/13866881.html
https://blog.csdn.net/toopoo/article/details/85733566