💡太长不看/TLDR: 符合以下条件2个以上的,尝试运行下面这个命令:
- WSL2 的最新更新为 2.1.5(或之前的 1 个测试版)
- Systemd 正在启用
- 非 Ubuntu(也许是非 Debian)发行版
sudo rmdir /tmp/.X11-unix && sudo ln -s /mnt/wslg/.X11-unix /tmp/.X11-unix
如有代码复制或者积分问题,欢迎来我的博客阅读,没有也欢迎~
最近遇到一个奇怪的问题,我的wsl2的Manjaro系统不能正常运行带gui的程序,会提示
Error: Can't open display: :0。奇怪是ubuntu却可以正常运行。
幸运的是,我带着这个问题搜索在SuperUser上找到这样一篇提问。Cannot open graphical applications in WSL2 on Arch, but works on Ubuntu - Super User
符合以下三个条件之二就会遇到这个问题。
恰好在范围内
![]()
接下来按照文章的提示有两种解决方法:
方法一:关闭systemd:
方法二:帮wslg解决空目录问题
sudo rmdir /tmp/.X11-unix && sudo ln -s /mnt/wslg/.X11-unix /tmp/.X11-unix
参考这部分代码添加系统服务,避免每次重启都要输入。
[Unit]
Description=symlink /tmp/.X11-unix
After=systemd-tmpfiles-setup.service
[Service]
Type=oneshot
ExecStart=rmdir /tmp/.X11-unix
ExecStart=ln -s /mnt/wslg/.X11-unix /tmp/
[Install]
WantedBy=sysinit.targe