我已经将/usr/local/stata/xstata作为根用户,权限为755。
当我试图通过终端从非根帐户运行这个程序时,我得到:
user@host ~ % /usr/local/stata/xstata-mp
(xstata-mp:8030): Gtk-WARNING **: 10:09:24.384: cannot open display: 0“这很奇怪,”我想,我只是知道我在我的.zshrc中设置了.zshrc,“那么,也许在运行这个命令时我需要显式地这样做?”所以我试着:
user@host ~ % DISPLAY=0 /usr/local/stata/stata-mp
(xstata-mp:8201): Gtk-WARNING **: 10:13:28.638: cannot open display: 0Edit: per @steeldriver 's的评论我也尝试过显示=:0
我周围有一个为什么gksu/gksudo不使用Wayland,或者用sudo启动一个图形应用程序?,它看起来很有希望(虽然我不使用Wayland,但我在Ubuntu18.10上,Wayland仍然被安装)。我尝试使用以下命令作为user@host,并在管理帐户中使用su:
user@host ~ % xhost -si:localuser:root
xhost: unable to open display "0"我走投无路,试着:
user@host ~ % DISPLAY=0 xhost -si:localuser:root
xhost: unable to open display "0"我试过其他显示号码都没有用。我想“我是个新手,也许localhost真的意味着和尝试上面提到的排列。
user@host ~ % xhost -si:user:root
xhost: unable to open display "0"原来我是个新手,但没什么用。:)
<#>How我能让xhost魔术化吗?
EDIT 3-22-2019:
pgrep -a Xorg
3907 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/123/gdm/Xauthority -background none -noreset -keeptty -verbose 3
7370 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3发布于 2019-03-23 19:34:27
由于某些原因(很可能与我是上述菜鸟有关),虽然echo $DISPLAY返回:0,但如果我键入who,我会看到我的显示实际上是:1 (?!),因此如果我调用DISPLAY=:1 /usr/local/stata/stata-mp,程序就会启动而不会出错。
重申我对unable to open display #的解决方案:
who并注意实际显示号(如果有冒号,则包括冒号)xhost或/usr/local/stata/stata-mp),键入DISPLAY=[INSERT NUMBER YOU NOTED HERE] [x COMMAND HERE]我会乐意支持和接受另一个答案,这可以帮助我理解这个看似不一致的行为。
发布于 2019-04-01 18:06:03
试试xhost +si:localuser:root
这将告诉您正在使用的xserver (无论是显示:0或:1,还是其他地方)来接受来自本地用户的连接,称为“root”--也就是说,使用SUID到root的程序,或者您在前面执行了sudo。
发布于 2020-07-10 20:43:26
xauth或xhost方案都不允许root通过"su“或使用"sudo”启动的应用程序从运行根的终端打开Debian 10 (Buster)或Ubuntu 20.04中的显示。
有人(我不记得是谁)张贴了(我不记得在哪里)在/etc/amam.d/su和/etc/amam.d/sudo中添加了以下一行:
会话可选pam_xauth.so
如果(a)在发行版中更容易找到,或者(b)在分发中这样做,这将是有帮助的。
https://askubuntu.com/questions/1108934
复制相似问题