Утилита SCREEN - оконный менеджер терминала или как закрыть клиент SSH не убивая сессию

Опубликовано admin -
Во время обслуживания сайтов клиентов, а зачастую и при выполнении работ по администрированию сервера, используя удаленный доступ, приходится по несколько часов ждать завершения тех или иных задач откинувшись на спинку кресла. В принципе эта ситуация нормальная, но когда в конце 2-3 часовой работы отваливается сеть, а процессы еще не закончили работать - приходится грязно материться и начинать все заново. Вот и начинаешь задумываться над тем, как избежать такой ситуации.

Порывшись в интернете нашел ответ на данный вопрос. Вот несколько утилит которые помогут разрешить проблему.

nohup - утилита позволяющая запустить программу независимо от shell.
dtach - еще одна утилита для создания отдельных сессий для каждого приложения.
screen - утилита, являющаяся полноценным оконным менеджером для терминала
tmux - еще один оконный менеджер для терминалов, который является альтернативой screen

Аналогично порывшись в интернете можно найти описание всех их. Для ленивых можно почитать например здесь
h ttp://debiania.blogspot.com/2010/05/nohup-dtach-screen-tmux.html

Для себя выбрал утилиту SCREEN. Про нее и пойдет дальнейшее повествование.

По умолчанию она не установлена в FreeBSD, поэтому ставим ее.

cd /usr/ports/sysutils/screen 
make install clean 

После установки в каталоге /usr/local/etc появится общесистемный конфигурационный файл screenrc. Если нужно что-бы разные пользователи, могли запускать программу со своими настройками, просто копируем этот файл в домашнюю директорию юзера с именем .screenrc.

Во время работы с утилитой screen, почти все сочетания клавиш работают через комбинацию [ Ctrl+a ], то есть сначала нажимаете ее, а уже затем управляющую комбинацию, например, что-бы получить исчерпывающую информацию по всем сочетаниям клавиш, жмем: [ Ctrl+a, ? ].
Приведу самые мной используемые

с  - создать новый экран
p - предыдущий экран
n - следующий экран
d - выйти из утилиты screen  
\ - убить (kill) запущенный screen

Запустить утлиту можно командой
screen
или
screen -S test

где test - имя сессии придуманное вами
Если утилита SCREEN запущена, то в нее можно войти по команде

screen -rd

Утилита SCREEN может работать до тех пор пока сервер не будет перезагружен. Если такое случится, в системе останутся мертвые экземпляры, ранее работавших SCREEN, о чем мы будем проинформированы следующим образом:

screen -rd 
There are 
screens on: 
     48273.ttyp5.hostname     (Dead ???) 
Remove dead 
screens with 'screen -wipe'. 
There is no screen to be detached.

 От мертвых экземплярова можно избавиться командой

screen -wipe

Источник вдохновения: vds-admin.ru/freebsd/screen-polnotsennyi-okonnyi-menedzher-dlya-terminala

Теги

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
11 + 5 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.