WSL中启用systemctl后user@0.service启动失败的解决咨询
WSL中启用systemctl后user@0.service启动失败的解决咨询
嘿,我来帮你搞定这个WSL里的systemd问题~
首先,先解释下为啥会出现这个错误:user@0.service是给root用户提供会话管理的系统服务,它需要/run/user/0这个目录属于root用户,但WSL启用systemd后,默认是用你的普通用户身份初始化会话的,这个目录会被自动设置成你的用户权限,而且因为WSL的会话机制,手动改权限后很快会被重置,这也是你遇到的问题。
关于你问的能不能禁用它?当然可以,而且这对于大部分WSL用户来说是非常安全的选择——毕竟咱们平时在WSL里大多用普通用户操作,很少会用到root的会话服务,禁用它不会影响日常使用。
具体操作步骤:
- 先停止当前运行失败的服务:
sudo systemctl stop user@0.service - 然后设置它开机不再自动启动:
sudo systemctl disable user@0.service
如果你之后确实需要用到root用户的会话服务(比如运行依赖root会话的图形程序),那可以临时启用它,不过这种场景在WSL里很少见。
另外,如果你实在不想禁用服务,也可以通过systemd的临时文件配置来固定/run/user/0的权限,但这属于修改系统默认设置,和你不想碰默认配置的需求不符,所以就不详细展开啦。
备注:内容来源于stack exchange,提问作者David S.




