1

Обычно я запускаю ssh -X для удаленного Linux-бокса, запускаю GNU screen и запускаю vim в режиме сервера внутри screen . После отсоединения и повторного присоединения к screen сессии я больше не могу отправлять файлы на сервер vim . Я полагаю, это связано с тем, что вновь подключенный сеанс screen потерял соединение с сервером X-window, который используется сервером vim для связи. Есть ли способ решить эту проблему?

1 ответ1

1

Это связано с тем, что ваше новое ssh-соединение использует новые значения для переменных среды $DISPLAY и / или $XAUTHORITY , но сеанс экрана все равно будет использовать значения из исходного ssh-соединения.

Вы можете создать скрипт со следующим содержимым, запустить его перед повторным подключением к сеансу экрана, а затем в каждой оболочке внутри сеанса экрана запустить source ~/.Xsetup

#!/bin/sh
exec > $HOME/.Xsetup
echo DISPLAY=$DISPLAY
echo XAUTHORITY=$XAUTHORITY

Это скопировало бы новые значения во все оболочки, из которых вы создали сгенерированный файл скрипта. Но сам сеанс экрана все еще будет иметь старые значения, и любые новые запущенные программы также получат их. Эти значения можно исправить, выполнив следующее после получения.Файл Xsetup.

screen -X setenv DISPLAY $DISPLAY
screen -X setenv XAUTHORITY $XAUTHORITY

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .