1. 故障现象
suse15.6 配置oracle时用ora用户启动配置窗口失败,提示unable to open display "",但用root用户启动正常。
bash
app01:ora 5> xclock
Error: Can't open display:
2. 思路
第一个想到的可能是DISPLAY的环境变量没有设置,于是手工配置成和root一致的环境变量
bash
app01:ora 6> setenv DISPLAY localhost:16.0
app01:ora 7> xclock
MoTTY X11 proxy: Unsupported authorisation protocal
MoTTY X11 proxy: Unsupported authorisation protocal
Error: Can't open display: localhost:16.0
坏消息依然报错,好消息报错有变化了。
3. 解决
这是典型的 X11 转发授权问题。root 用户有 xauth cookie,但 ora 用户没有。
先在 root 下执行:
bash
appo1:~ # echo $DISPLAY
localhost:16.0
appo1:~ # xauth list
localhost/unix:16 MIT-MAGIC-COOKIE-1 abcdef1234567890...
切换到 ora 用户,添加同一条 cookie:
bash
app01:ora 8> xauth add localhost/unix:16 MIT-MAGIC-COOKIE-1 abcdef1234567890...
app01:ora 9> setenv DISPLAY localhost:16.0
app01:ora 10> xclock
好了问题解决,可以正常打开了。