Screen

Материал из FedoraMD.org Wiki
Версия от 18:00, 15 июля 2008; Jekader (обсуждение | вклад) (Новая: GNU Screen - это мультиплексор терминалов. Он позволяет в одном окне терминала пользоваться сразу несколь...)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

GNU Screen - это мультиплексор терминалов. Он позволяет в одном окне терминала пользоваться сразу несколькими сессиями и перемещаться между ними, подобно оконному менеджеру X Window System. Благодаря этому, к примеру, через одно SSH подключение можно управлять сразу несколькими программами на удалённой машине.

Ещё одна важная функция screen - возможность отключения от сеанса, с последующим подключением к нему в другое время, и даже из другого места.

При этом, существует специальный буфер, в который сохраняется вывод программ в то время, пока сессия отключена - поэтому её можно просмотреть после подключения.

Третья интересная возможность - это одновременное подключение нескольких клиентов к одной терминальной сессии, и совместное управление ею.

---

Установить screen просто, утилита присутствует в большинстве дистрибутивов. Для Fedora просто наберите yum install screen

запустите screen screen

вы попадёте в новую терминальную консоль. Запустите там какую-то программу. Теперь, можно отключить сессию - это делается нажатием клавиш Ctrl+A, а затем - D. появится надпись [detached] и вы снова попадёте в исходную консоль. Сеанс screen, и запущенное в нём приложение продолжают выполняться в фоновом режиме. Чтобы снова зайти в этот сеанс, наберите screen -r чтобы завершить сеанс screen - закройте запущенную в нём программу, если такая имеется - и, как и в обычной консоли - наберите exit

Но что делать, если хочется запускать в фоне две, три, или более программ? Для этого достаточно дать сессиям названия.

Например, можно ввести screen name0 запустить программу, отключить сессию по C-a d - затем, ввести screen name1 и получить ещё один сеанс. соответственно, при желании вновь зайти в сеанс, его назване нужно указать. screen -r name0

Есть множество параметров как командной строки, так и внутри сеанса screen - их можно почитать? набрав man screen

Лично я для запуска screen пользуюсь параметром -RD screen -RD name в данном случае, если сессии нет - она создастся. Если сессия есть, и она находится в фоне - то к ней будет произведено подключение. И даже если сессия сейчас активна, произойдёт её отключение от предыдущего терминала, и подключение к нынешнему.

Вот так вот.