Java Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable
背景描述:
xshell/xmanager使用非root用户可以远程启动,但有时需要root用户启动,比如导入的onos项目需要以root用户启动,否则会报错权限不够。但root用户启动IDEA会报错:Java Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable
解决:
1.远程登录主机
2.切换到普通用户(可以启动IDEA的)
sudo su - sdn xauth list $DISPLAY sdn-VirtualBox/unix:10 MIT-MAGIC-COOKIE-1 85967cbab44b5e41285902c90d78c859 sdn-VirtualBox/unix:11 MIT-MAGIC-COOKIE-1 d32f4b7af8dccbbf2ab617eeadbf6da4 sdn-VirtualBox/unix:12 MIT-MAGIC-COOKIE-1 ec17d75a31c8501220b65af875d7c624 echo $DSIPLAY localhost:10.0
3.切换到root用户,执行上面两个命令,结果如下
root@sdn-VirtualBox:~# echo $DISPLAY
root@sdn-VirtualBox:~# xauth list $DISPLAY
4.需要将2中命令输出的cookie添加到root用户
root@sdn-VirtualBox:~# xauth add sdn-VirtualBox/unix:10 MIT-MAGIC-COOKIE-1 85967cbab44b5e41285902c90d78c859 root@sdn-VirtualBox:~# xauth add sdn-VirtualBox/unix:11 MIT-MAGIC-COOKIE-1 d32f4b7af8dccbbf2ab617eeadbf6da4 root@sdn-VirtualBox:~# xauth add sdn-VirtualBox/unix:12 MIT-MAGIC-COOKIE-1 ec17d75a31c8501220b65af875d7c624
5.再次为 sudo 用户导出步骤 2 中的DISPLAY。尝试使用命令 xclock 来验证 x 客户端应用程序是否按预期工作。
#export DISPLAY=localhost:10.0 #xclock
参考链接:
https://www.thegeekdiary.com/how-to-set-x11-forwarding-export-remote-display-for-users-who-switch-accounts-using-sudo/
https://stackoverflow.com/questions/10165761/java-cant-connect-to-x11-window-server-using-localhost10-0-as-the-value-of-t