我看到$ display设置为localhost:0,0如果我在vnc服务器上运行这可能不正确,有没有办法在我的登录脚本中自动设置它?
你用Bash吗?转到主目录中的.bashrc文件并设置变量,然后将其导出.
DISPLAY = localhost:0.0; 导出显示
如果要为所有用户执行此操作,可以使用/ etc/bashrc.
您可能还想查看〜/ .bash_profile和/ etc/profile
编辑:
function get_xserver ()
{
case $TERM in
xterm )
XSERVER=$(who am i | awk '{print $NF}' | tr -d ')''(' )
XSERVER=${XSERVER%%:*}
;;
aterm | rxvt)
;;
esac
}
if [ -z ${DISPLAY:=""} ]; then
get_xserver
if [[ -z ${XSERVER} || ${XSERVER} == $(hostname) || \
${XSERVER} == "unix" ]]; then
DISPLAY=":0.0" # Display on local host.
else
DISPLAY=${XSERVER}:0.0 # Display on remote host.
fi
fi
export DISPLAY
Run Code Online (Sandbox Code Playgroud)
这是我刚刚敲了一下的东西.它检查上次启动的"gnome-session"进程的环境(当VNC启动会话/窗口管理器时,正确设置了DISPLAY).将"gnome-session"替换为VNC服务器在启动时启动的任何进程的名称.
PID=`pgrep -n -u $USER gnome-session`
if [ -n "$PID" ]; then
export DISPLAY=`awk 'BEGIN{FS="="; RS="\0"} $1=="DISPLAY" {print $2; exit}' /proc/$PID/environ`
echo "DISPLAY set to $DISPLAY"
else
echo "Could not set DISPLAY"
fi
unset PID
Run Code Online (Sandbox Code Playgroud)
您应该只能将其放在.bashrc文件中.