2013-11-21 9 views
1

i love screen utility и я использую его на моем сервере, поэтому я установил свой .bashrc-файл, чтобы возобновить сеанс экрана при входе в систему. единственная функция, которую я пропустил, - это то, что выходит из сеанса ssh без необходимости отдельного отсоединения/закрытия сеанса экрана.linux screen detatch и logout

Я думал о каком-то скрипте, который запускал бы screen -dS "mainScreen"; exit, но это невозможно, так как этот скрипт, очевидно, продолжает свое выполнение внутри сеанса экрана после команды отсоединения и не влияет на мою сессию ssh, поэтому единственное, что я получаю, это то, что сеанс экрана завершается.

Есть ли способ выполнить операцию «отладки и выхода», атомически ведущую экран для продолжения работы, и моя сессия ssh прекратится?

+0

Закройте SSH сессию с '~ .' –

+0

я не правильно понимая ... что может '' .' делать? – mellotanica

+0

Если вы наберете '~ .', он должен закрыть сеанс ssh. Сеанс экрана будет продолжать работать. –

ответ

2

ssh поддерживает механизм, с помощью которого вы можете вводить ввод непосредственно к нему, а не к оболочке на другом конце соединения. Этот механизм активируется при вводе ключа эвакуации, который может быть установлен с -e и по умолчанию ~. Это полезно для различных функций, таких как настройка переадресации портов в уже подключенном сеансе или завершение соединения. Вы можете ввести ~?, чтобы получить полный список доступных команд. В частности, для завершения сеанса, введите:

~. 
2

Вместо того, чтобы ssh запустить оболочку входа в систему (по умолчанию), запустить его screen непосредственно:

ssh remoteHost -t screen -dRS "mainScreen" 

При отсоединении, клиент экрана выходы, вызывающие ssh, чтобы закрыть соединение.

(Примечание: я включаю screen команду, предложенных Стив, но вы можете использовать любую команду вы обычно используете для подключения к сессии.)

+0

Вам не нужна опция -r для экрана? – Steve

+0

Наверное :) Я не использовал 'screen' в течение длительного времени. Команда, переданная в 'ssh', должна быть любой командой, которую вы в настоящее время используете для присоединения к сеансу при входе в систему. – chepner

+0

На самом деле большой R (-dRS «mainScreen») лучше всего, так как это создаст сеанс, если он еще не существует. – Steve

 Смежные вопросы

  • Нет связанных вопросов^_^