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