Screen: различия между версиями

Материал из FedoraMD.org Wiki
Перейти к навигации Перейти к поиску
(Новая: GNU Screen - это мультиплексор терминалов. Он позволяет в одном окне терминала пользоваться сразу несколь...)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
GNU Screen - это мультиплексор терминалов. Он позволяет в одном окне терминала пользоваться сразу несколькими сессиями и перемещаться между ними, подобно оконному менеджеру X Window System.
+
{{Суперпользователь}}
 +
 
 +
[[wikipedia:ru:GNU|GNU]] Screen - это мультиплексор терминалов. Он позволяет в одном окне терминала пользоваться сразу несколькими сессиями и перемещаться между ними, подобно оконному менеджеру X Window System.
 
Благодаря этому, к примеру, через одно SSH подключение можно управлять сразу несколькими программами на удалённой машине.
 
Благодаря этому, к примеру, через одно SSH подключение можно управлять сразу несколькими программами на удалённой машине.
  
Строка 8: Строка 10:
 
Третья интересная возможность - это одновременное подключение нескольких клиентов к одной терминальной сессии, и совместное управление ею.
 
Третья интересная возможность - это одновременное подключение нескольких клиентов к одной терминальной сессии, и совместное управление ею.
  
---
+
----
  
Установить screen просто, утилита присутствует в большинстве дистрибутивов. Для Fedora просто наберите
+
Установить screen просто, утилита присутствует в большинстве дистрибутивов. Для Fedora просто наберите:
yum install screen
+
<source lang="bash">
 +
# yum install screen
 +
</source>
  
 
запустите screen
 
запустите screen
screen  
+
<source lang="bash">
 +
$ screen
 +
</source>
  
 
вы попадёте в новую терминальную консоль. Запустите там какую-то программу. Теперь, можно отключить сессию - это делается нажатием клавиш Ctrl+A, а затем - D.
 
вы попадёте в новую терминальную консоль. Запустите там какую-то программу. Теперь, можно отключить сессию - это делается нажатием клавиш Ctrl+A, а затем - D.
появится надпись [detached] и вы снова попадёте в исходную консоль. Сеанс screen, и запущенное в нём приложение продолжают выполняться в фоновом режиме.
+
появится надпись '''[detached]''' и вы снова попадёте в исходную консоль. Сеанс screen, и запущенное в нём приложение продолжают выполняться в фоновом режиме.
 
Чтобы снова зайти в этот сеанс, наберите
 
Чтобы снова зайти в этот сеанс, наберите
screen -r
+
<source lang="bash">
чтобы завершить сеанс screen - закройте запущенную в нём программу, если такая имеется - и, как и в обычной консоли - наберите exit  
+
$ screen -r
 +
</source>
 +
чтобы завершить сеанс screen - закройте запущенную в нём программу, если такая имеется - и, как и в обычной консоли - наберите <code>exit </code>
  
 
Но что делать, если хочется запускать в фоне две, три, или более программ? Для этого достаточно дать сессиям названия.
 
Но что делать, если хочется запускать в фоне две, три, или более программ? Для этого достаточно дать сессиям названия.
  
 
Например, можно ввести
 
Например, можно ввести
screen name0
+
<source lang="bash">
 +
$ screen name0
 +
</source>
 
запустить программу, отключить сессию по C-a d - затем, ввести
 
запустить программу, отключить сессию по C-a d - затем, ввести
screen name1
+
<source lang="bash">
 +
$ screen name1
 +
</source>
 
и получить ещё один сеанс.
 
и получить ещё один сеанс.
 
соответственно, при желании вновь зайти в сеанс, его назване нужно указать.
 
соответственно, при желании вновь зайти в сеанс, его назване нужно указать.
screen -r name0
+
<source lang="bash">
 +
$ screen -r name0
 +
</source>
  
Есть множество параметров как командной строки, так и внутри сеанса screen - их можно почитать? набрав man screen
+
Есть множество параметров как командной строки, так и внутри сеанса screen - их можно почитать? набрав  
 +
<source lang="bash">
 +
$ man screen
 +
</source>
  
 
Лично я для запуска screen пользуюсь параметром -RD
 
Лично я для запуска screen пользуюсь параметром -RD
screen -RD name
+
<source lang="bash">
 +
$ screen -RD name
 +
</source>
 
в данном случае, если сессии нет - она создастся. Если сессия есть, и она находится в фоне - то к ней будет произведено подключение. И даже если сессия сейчас активна, произойдёт её отключение от предыдущего терминала, и подключение к нынешнему.
 
в данном случае, если сессии нет - она создастся. Если сессия есть, и она находится в фоне - то к ней будет произведено подключение. И даже если сессия сейчас активна, произойдёт её отключение от предыдущего терминала, и подключение к нынешнему.
  
 
Вот так вот.
 
Вот так вот.
 +
 +
[[Category:Статьи]]

Текущая версия на 12:01, 16 июля 2008

ВНИМАНИЕ: команды предваряемые символом '#' должны выполняться с правами 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

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

Вот так вот.