在Windows子系統(WSL)中配置開機啟動服務


在WSL中跑了一些測試服務 比如 mysql nginx等,但關機后每次都要手動開啟甚是吃力,本想着用rc.local來編輯開機啟動 ,無奈不支持啊!先看看非WSL環境中是怎么實現的。

在 Ubuntu 18一下,設置開機自動啟動一般是編輯 /etc/rc.local

在 Ubuntu 18以上則需要鏈接 rc-local.service 文件 然后創建 rc.local 文件並修改權限,大概是這樣的:

ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service  
touch /etc/rc.local  
chmod 755 /etc/rc.local  

然后編輯rc.local 大概格式是這樣的:

#!/bin/bash
service start ....
exit 0   

然而,WSL中並不支持通過rc.local 來實現開機啟動。但在這有個偏方,可以通過windows 的啟動項來啟動 rc.local中的腳本。

 

win+r shell:startup <- 進入啟動目錄

  • 創建一個VBScript腳本wls_rclocal.vbs
  • 寫入內容 , 通過bash命令參數去執行rc.local
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'sudo /etc/rc.local'",0
  • 進入WSL終端 創建 sudoers 文件
vim /etc/sudoers.d/rc-local
  • 編輯配置如下內容,yourusername 為 linux賬戶名稱 , 后面的路徑則是需要啟動的程序路徑。這里的作用是無需輸入用戶名和密碼即以sudo/超級賬戶執行配置的程序和腳本。
yourusername * = (root) NOPASSWD: /etc/rc.local
yourusername * = (root) NOPASSWD: /etc/init.d/mysql
yourusername * = (root) NOPASSWD: /etc/xxxxxx
  • 重啟電腦,登錄賬戶后就會執行wls_rclocal.vbs,通過VBS執行rc.local中的啟動腳本。
  • 也可以通過windows計划任務實現啟動VBS。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM