wsl2 & systemd
systemd
systemd即为system daemon,是linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布,开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的System V与BSD风格init程序。与多数发行版使用的System V风格init相比,systemd采用了以下新技术:采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;用Cgroups代替PID来追踪进程,因此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。
wsl2
查看版本信息
wsl --version
wsl版本不低于0.67
若低于该版本可升级
wsl --update
进入linux子系统
wsl -d ubuntu
若只有一个子系统也可以使用wsl
进入
进入子系统以后,创建或修改/etc/wsl.conf
文件
可以使用vim /etc/wsl.conf
编辑文件,并添加如下内容
[boot]
systemd=true
输入exit命令退出wsl子系统
关闭wsl子系统 wsl --shutdown ubuntu
或 wsl --shutdown
查看是否正常启动,如果返回init则失败,如果返回systemd则成功
ps --no-headers -o comm 1
docker,mysql 等需要在systemed的支持下才能良好运行。
以上设置完成后,会发现,mysql,redis已经自启动了。
wsl无法启动
以管理员身份执行:netsh winsock reset
Reference
https://baike.baidu.com/item/systemd/18473007?fr=aladdin
https://bbs.zsxwz.com/thread-5349.htm