Apache2无法启动:System has not been booted with systemd as init system (PID1) 错误求助
Apache2无法启动:System has not been booted with systemd as init system (PID1) 错误求助
嘿,看你的描述,你应该是在WSL(Windows Subsystem for Linux)环境里折腾Apache2吧?这个报错其实挺常见的——WSL默认情况下不是用systemd作为初始化系统(也就是PID1进程),所以你用systemctl命令自然会碰钉子。给你几个实用的解决办法,你可以试试:
方法一:启用WSL 2的systemd支持(推荐)
现在WSL 2已经原生支持systemd了,只要简单配置就能搞定:
- 先确认你的WSL版本:打开PowerShell或者CMD,运行
wsl -l -v。如果你的发行版版本是1,先切换到2:wsl --set-version <你的发行版名称> 2(比如你用的是Ubuntu,就敲wsl --set-version Ubuntu 2) - 接着在Windows的用户目录下(比如
C:\Users\你的用户名)创建或修改.wslconfig文件,添加以下内容:
[wsl2] systemd=true
- 最后彻底关闭所有WSL实例:
wsl --shutdown,重新打开Linux终端后,再试试sudo systemctl enable --now apache2.service,应该就能正常操作了。
方法二:用WSL原生的服务管理命令
如果不想折腾systemd,也可以直接用WSL兼容的service命令来管理Apache2:
- 启动服务:
sudo service apache2 start - 设置开机自启:
sudo update-rc.d apache2 defaults(这个命令适用于Debian/Ubuntu系列的发行版) - 查看服务状态:
sudo service apache2 status
另外提一句,你之前用wsl --terminate没效果,可能是因为只终止了单个发行版,用wsl --shutdown会彻底关闭所有WSL进程,能确保配置修改生效哦。
备注:内容来源于stack exchange,提问作者Joe Slow Poke Rodriguez Aceved
相关产品推荐
相关产品推荐

