ДОБАВЛЕНО: этот вопрос теперь, я считаю, относится к этому: Использование экрана GNU полностью прозрачно и автоматически
Смотрите также этот вопрос:
https://superuser.com/info/147873/ssh-sessions-in-xterms-freeze-for-many-minutes-whenever-they-disconnect
Оригинальный вопрос:
Было бы неплохо, если бы был способ ssh на машину и сразу же подключиться к определенному сеансу экрана. Вы можете сделать это:
laptop> ssh server.com screen -ls
и он покажет список экранов, доступных на сервере .com, таким образом [1]:
123.pts-1
456.pts-2
И тогда вы можете попытаться сделать это:
laptop> ssh server.com screen -dr pts-2
но это не работает, говоря: "Должно быть подключено к терминалу". Сначала вы должны сначала выполнить ssh, а затем выполнить "screen -dr pts-2" на сервере server.com, что небезопасно, если у вас сломанное соединение и вы сильно отключились. Вы хотите возобновить работу с помощью простого "стрелка вверх" на ноутбуке. (Или, возможно, сделать его еще более автоматическим.)
У меня есть неразрешимое решение этой проблемы, которое я выложу в качестве ответа, и надеюсь, что он будет занижен до забвения в пользу правильного способа справиться с этим.
Сноски:
[1] Или, лучше, если вы создали сеансы экрана с именами типа "screen -S foo
" и "screen -S bar
", вы получите более удобный список, например:
123.foo
456.bar
и может повторно подключаться, например, к "screen -dr foo
".
Учебник по мини-экрану, включающий ответ на этот вопрос:
Войдите на сайт server.com и выполните
screen -S foo
а затем никогда больше не выходите из этой сессии. Чтобы снова подключиться к нему из других источников, сделайте
ssh -t server.com screen -dr foo
Перечислить доступные экраны для перехода на:
screen -ls
или, конечно,
ssh server.com screen -ls
для удаленного доступа к экранам server.com.
Теперь я использую следующий псевдоним (tcsh), основанный на ответе Джейсона ниже, для подключения к именованному экрану, если он существует или создает и подключается иначе:
alias ssc 'ssh -t \!:1 "screen -S \!:2 -dr || screen -S \!:2"'