内容纲要
Windows 10 Series – Ubuntu Service Auto Startup
上一篇讲到了一些常用服务的安装配置,这里面其实存在一个问题,每次关机后,下次开机都需要手动启动这些依赖的服务。那么,能不能让这些服务在开机的时候自动运行起来呢?答案是可以的~
网上流传的一些方法在我的电脑上都不好使,Win10在不停的更新升级,有许多东西都变了。
总结下来,下列即是当前可行的一个方案,有个小缺点,开机启动的时候会有个命令提示符的弹窗,几秒后会自动关闭的。
Windows 10 自动启动脚本
打开启动菜单目录
Win
+ R
输入 shell:startup
即可打开启动菜单目录。
在启动目录下创建名为 autorun-service.bat
的脚本文件,内容如下:
@echo off
@cmd /Q /C start /B /MIN C:\Windows\System32\bash.exe --login -c 'exit'
@exit
bash.exe是安装完 Linux 子系统才有的, –login 参数表示登录终端。
如果打开命令提示符,输入bash --login
即可登录进入 Linux 子系统的终端。
这种方式的思路是开机启动运行一下子系统的bash,在子系统当前用户的 ~/.profile 文件上做文章。
在 Linux 子系统是 Windows 10 的定制版本,此子系统没有原生 Linux 的一些 deamon 守护进程,所有需要手动启动这些服务。
通过以下一些命令便可略知一二:
sudo systemctl restart apache2
System has not been booted with systemd as init system (PID 1). Can't operate.
ssh服务默认是未启动的,通过判断 ssh 服务的状态来决定是否需要批量拉起我们的服务。
Linux 子系统配置
## 打开 ubuntu 终端
# 创建 bin 目录
mkdir ~/bin
# 创建服务自启动脚本文件
touch ~/bin/autorun-service
chmod 700 ~/bin/autorun-service
#-- 脚本内容见下方
## 配置自动调用脚本
# .profile 末尾加上如下配置
if [ -e "$HOME/bin/autorun-service" ] ; then
. "$HOME/bin/autorun-service"
fi
~/bin/autorun-service
#!/bin/bash
#
# filename: autorun-service
# description: auto run service configuration
#
#-- 此处 123456 替换为你的子系统当前用户的密码
UPWD=123456
if [ -n "`service ssh status | grep " is not running"`" ] ; then
echo $UPWD | sudo -S service ssh start
echo $UPWD | sudo -S service mysql start
echo $UPWD | sudo -S service apache2 start
fi
Reference
声明:
未经特别说明,本站Blog均采用署名-非商业性使用-禁止演绎 2.5 中国大陆授权。任何违反本协议的行为均属于非法行为。如需非商业性转载,请保留署名。如需商业性转载出版,请直接和我联系。
《“Windows 10 Series – Ubuntu Service Auto Startup”》 有 1 条评论
[…] 下一篇将讲解Windows 10下的Linux子系统的服务自启动配置。 […]