пятница, 17 января 2014 г.

Linux - Use "screen" for ssh if session terminates

Screen is often used when a network connection to the terminal is unreliable, as a dropped network connection typically terminates all programs the user was running. Running the applications under screen means that the applications don't even know the terminal has detached, and allows the user to reattach the session later and continue working from where they left off. http://en.wikipedia.org/wiki/GNU_Screen

"Screen – это полноэкранный оконный менеджер, который позволяет разделить физический терминал между несколькими независимыми процессами (обычно интерактивными облочками)"


запуск:
$screen

Список команд:
Ctrl+A, затем ?

Screen key bindings, page 1 of 2.
Command key: ^A Literal ^A: a
break ^B b lockscreen ^X x reset Z
clear C log H screen ^C c
colon : login L select ” ‘
copy ^[ [ meta a silence _
detach ^D d monitor M split S
digraph ^V next ^@ ^N sp n suspend ^Z z
displays * number N time ^T t
fit F only Q title A
flow ^F f other ^A vbell ^G
focus ^I pow_break B version v
help ? pow_detach D width W
history { } prev ^P p ^? windows ^W w
info i readbuf < wrap ^R r
kill K redisplay ^L l writebuf >
lastmsg ^M m remove X xoff ^S s
license , removebuf = xon ^Q q
[Press Space for next page; Return to end.]
Новое окно открывается комбинацией клавиш “Ctrl+a c”
Вернутся в предыдущее, нажав Ctrl+a n
для переключения на следующеее окно и Ctrl+a p

Способы отключиться от screen:
1) – разлогиниться. Ctrl+a K или exit. Этот способ “убьет” текущее окно, если у вас их несколько или совсем остановит screen.
2) - отсоединение. Этот способ оставляет текущий процесс запущенным и просто отключает от терминала. Например, если через ssh-сессию запущен какой-то очень длительный процесс, не требующий внимания, то просто отключаемся от screen при помощи Ctrl+a d. Это вернет обратно в исходную оболочку. Все процессы, запущенные в screen, при этом остаются работающими и к ним можно подключиться позже.

Подключение к сессии
[root@server root]# screen -ls
There are screens on:
31619.ttyp2.server (Detached)
4731.ttyp2.server (Detached)
2 Sockets in /tmp/screens/S-root.
В этом примере запущено две screen-сессии. Для подключения к нужной из них используйте команду
[root@server root]#screen -r 31619.ttyp2.server
Источник: http://system-administrators.info/?p=1750

3 комментария:

  1. screen -S — запустить с определенным именем «name»

    ОтветитьУдалить
  2. screen -r name — подключиться к определенному скрину с именем «name» (можно указывать несколько начальных букв)

    ОтветитьУдалить
  3. Ctrl+a space — переключиться на след. окно в сеансе;
    Ctrl+a c — создать новое окно;
    Ctrl+a A — назвать текущее окно;
    Ctrl+a « — посмотреть список окон с возможностью переключения в какое-либо из них;
    Ctrl+a ‘ — переключиться на определенное окно по названию или номеру;
    Ctrl+a [0-9] — переключиться на соответствующее окно (нумерацию можно посмотреть с помощью Ctrl+a «);
    Ctrl+a a — переключение между двумя последними окнами;
    Ctrl+a n — переключиться на следующее окно;
    Ctrl+a p — на предыдущее, также можно использовать BackSpace, вместо символа p;
    Ctrl+a d — отсоединиться от screen;
    Ctrl+a Esc — переводит screen в «режим копирования». Становиться доступным передвижение по экрану (кстати, работают комбинации клавиш перемещения, как в VIM-e или less, в том числе и поиск — «/»);
    Ctrl+a M — слежение за активностью (сработает при появлении новой информации);
    Ctrl+a _ — для слежения за бездействием (сработает при прекращении поступления информации в терминал);
    Ctrl+a * — показать список всех подключенных сейчас дисплеев.

    ОтветитьУдалить