Win10 子系统 WSL 开机启动服务
文章来源:https://www.yuque.com/hhun/code/wsl2_run
Linux 中创建执行脚本
脚本路径 /etc/init.wsl
脚本内容
#! /bin/sh /etc/init.d/cron $1 /etc/init.d/ssh $1 /etc/init.d/bt $1 /etc/init.d/nginx $1 /etc/init.d/php-fpm-56 $1 /etc/init.d/php-fpm-73 $1 /etc/init.d/mysqld $1 /etc/init.d/redis $1 /etc/init.d/pure-ftpd $1
给予脚本执行权限
sudo chmod +x /etc/init.wsl
开机自动启动服务器
1、在Win10创建vbs脚本
脚本文件名 Linux_run.vbs
脚本内容
Set ws = WScript.CreateObject("WScript.Shell")
ws.run "wsl -d Ubuntu-20.04 -u root /etc/init.wsl restart"
Ubuntu-20.04
为子系统分支版本。
restart
为运行动作,其他动作:stop
停止 | start
启动 | restart
重启。
2、设置Win10开机启动项
Windows 下 Win+R
输入 shell:startup
。
将 Linux_run.vbs
拖入到打开的文件夹中,Win10开机便会自动启动。
手动管理服务器
该方式不能开机自动启动,可以自由选择执行动作。
Bat批命令脚本下载:
使用时需要把脚本文件里面的 Ubuntu-20.04
改为您的子系统分支版本。
Unix格式转换
在Windows中写好shell脚本测试正常,但是上传到 Linux 上以脚本方式运行命令时提示 No such file or directory 错误,那么一般是文件格式是dos格式的缘故,改成unix格式即可。
1、在Windows下转换
利用一些编辑器如 UltraEdit 或 EditPlus 等工具先将脚本编码转换,再放到Linux中执行。
UltraEdit转换方式:File -> Conversions -> DOS -> UNIX 即可。
2、在Linux中的权限转换
首先要确保文件有可执行权限
#chmod u+x filename
然后修改文件格式
#vi filename
3、方法三
用vim打开该sh文件,输入:
:set ff
回车,显示fileformat=dos
,重新设置下文件格式:
:set ff=unix
保存退出:
:wq
再执行,竟然可以了。
三种方法都可以方便快速的解决关于Linux执行.sh文件,提示No such file or directory这个问题了。
所以,程序尽量在Linux下编写,迁移时能避免很多意想不到的问题。
启动WSL服务
cmd命令
wsl -u root -d Ubuntu-20.04 service cron restart wsl -u root -d Ubuntu-20.04 service ssh restart wsl -u root -d Ubuntu-20.04 service bt restart wsl -u root -d Ubuntu-20.04 service nginx restart wsl -u root -d Ubuntu-20.04 service php-fpm-56 restart wsl -u root -d Ubuntu-20.04 service php-fpm-73 restart wsl -u root -d Ubuntu-20.04 service mysqld restart wsl -u root -d Ubuntu-20.04 service redis restart wsl -u root -d Ubuntu-20.04 service pure-ftpd restart
Ubuntu-20.04
为子系统分支版本。
Linux命令
sudo service cron restart sudo service ssh restart sudo service bt restart sudo service nginx restart sudo service php-fpm-56 restart sudo service php-fpm-73 restart sudo service mysqld restart sudo service redis restart sudo service pure-ftpd restart
<< 上一篇
下一篇 >>