Screen

Материал из FedoraMD.org Wiki
Версия от 12:01, 16 июля 2008; OlegA (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

ВНИМАНИЕ: команды предваряемые символом '#' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su - для повышения уровня привелегий. Символы '$' и '#' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.


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

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

Вот так вот.