Screen: различия между версиями
Jekader (обсуждение | вклад) (Новая: GNU Screen - это мультиплексор терминалов. Он позволяет в одном окне терминала пользоваться сразу несколь...) |
OlegA (обсуждение | вклад) (Преоброзование в вики-стиль) |
||
Строка 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:Статья]] |
Версия 09:02, 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
в данном случае, если сессии нет - она создастся. Если сессия есть, и она находится в фоне - то к ней будет произведено подключение. И даже если сессия сейчас активна, произойдёт её отключение от предыдущего терминала, и подключение к нынешнему.
Вот так вот.