• 在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:WindowsSystem32ash.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。
  • 相关阅读:
    day 80 视图家族
    day 79 drf 多表关联操作
    day 78 drf 序列化
    day 77 drf中请求、渲染、解析、异常、响应模块的二次封装
    day 76 drf
    python小知识
    请求 渲染 解析 异常 响应模块
    子组件
    vue基础(2)
    vue基础
  • 原文地址:https://www.cnblogs.com/vaynewang/p/10169134.html
Copyright © 2020-2023  润新知