Назад | Перейти на главную страницу

Запуск приложений X на локальном дисплее с удаленного хоста

Это меня расстраивает. Почему не работает и как заставить работать?

У меня недавно установлен Ubuntu 10.04.2 (Lucid Lynx). Я установил X и gdm. Gdm настроен на автоматический вход пользователя. К компьютеру не подключена клавиатура, но я хочу отобразить кое-что на ее локальном дисплее.

Обычно я просто подключаюсь по ssh к компьютеру как пользователь, который вошел в систему автоматически, и запускал, например, «DISPLAY =: 0.0 xclock».

Но теперь я получаю только ответ:

user@host:~$ DISPLAY=:0.0 xclock
No protocol specified
Error: Can't open display: :0.0

Однако, если я вхожу в систему как root, это работает.

Похоже, в этой проблеме есть пара ошибок: Вот этот предотвращает создание файла .Xauthority. И вот этот предотвращает работу предлагаемого обходного пути при использовании автоматического входа в систему.

Таким образом, решение заключалось в том, чтобы изменить автоматический вход на временный вход с небольшой задержкой и добавить следующее в / etc / gdm / PostLogin / default

#!/bin/bash

auth=$HOME/.Xauthority
if [ -e $auth ]; then
diff <(xauth extract - $DISPLAY) <(XAUTHORITY=$auth xauth extract - $DISPLAY) > /dev/null && exit 0
fi
xauth extract - $DISPLAY | XAUTHORITY=$auth xauth merge -
chown $USER $auth