2008-07-14

Screen - дополнение к SSH-сессии

Ознакомиться с этим чудесным средством меня сподвигли несколько досадных неудач при работе через SSH-сессию. Были разрывы соединения и по моей вине, и по вине VPN-сервера, через который я был связан с удаленным компом. Мне посоветовали “Screen - это полноэкранный оконный менеджер, который позволяет разделить физический терминал между несколькими независимыми процессами (обычно интерактивными оболочками)”.
Хорошая статья для начального освоения лежит тут.
Кое-что я тут дополню от себя. Приступим:
  1. Логинимся по SSH-соединению к удаленному серверу.
  2. Запускаем на удаленном сервере screen.
  3. Выполняем обычную работу.
Допустим, случилось нечто, от чего волосы встают дыбом :) Был запущен многочасовой процесс, до завершения которого оставалось 5 минут (мой реальный случай :( ). SSH-соединение разорвалось по некоторым причинам. Не беда :)
  1. Заходим снова через SSH.
  2. Запускаем screen c параметром -R.
  3. Видим на экране все, что мы делали (и дело идет!).
  4. Продолжаем работу.
Другие полезные фичи:
Ctrl-A D - закрытие окна screen без отсоединения (без закрытия сессий).
Ctrl-A C - открытие нового окна screen.
Ctrl-A N - переключение между окнами.
Ctrl-A K или exit - разлогинивание из текущего окна (или вообще выход, если окно было единственным).
Ctrl-A H - логирование.

Еще куча фишек описана в той же статье в разделе "И еще немного…". Ну и, конечно, никто не отменял man screen.

Список сессий:
screen -ls
Можно подсоединиться к любой из сессий по ее имени (1-я колонка):
screen -r session_name
Вычистить список сессий по шаблону:
screen -wipe template

Комментариев нет: