需求描述

由于wsl中无法使用开机自动启动LNMP服务,如果每次都需要一个个手动启动过于麻烦,需要实现wsl开机自动启动这些服务。

解决方法

可以将启动服务添加到.bashrc,实现打开wsl自动启动服务。.bashrc就相当于 shell 的配置文件.
系统中有多个.bashrc隐藏文件,他们的作用不同。这里主要实现打开wsl是调用,所以就使用用户文件夹下的.bashrc文件。
其路径示例:/home/username/.bashrcusername为用户名。

实现步骤

  1. 在用户文件夹下创建自启服务的startservers.sh脚本:
cd /home/username  #切换到用户文件夹

#创建startservers.sh文件

cat>startservers.sh<<EOF
#!/bin/bash
# Edit this for your relevant services.
services=(php7.3-fpm nginx redis-server mysql)
for service in "\${services[@]}"
do
         if (( \$(ps -ef | grep -v grep | grep \$service | wc -l) == 0 ))
         then
         # Uncomment to get messages. #
         #echo "Starting service \${service}"
         (sudo service \$service start > /dev/null &)
         fi
done
EOF
  1. 给与startservers.sh可执行权限
chmod +x startservers.sh
  1. startservers.sh添加到/home/username/.bashrc 文件:
sed -i '$a ~/startservers.sh' .bashrc

这样,当wsl启动后,将会自动开启配置在startservers.sh中的服务。

Last modification:November 1st, 2020 at 10:23 am