Screen
ВНИМАНИЕ: команды предваряемые символом '#
' должны выполняться с правами 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
в данном случае, если сессии нет - она создастся. Если сессия есть, и она находится в фоне - то к ней будет произведено подключение. И даже если сессия сейчас активна, произойдёт её отключение от предыдущего терминала, и подключение к нынешнему.
Вот так вот.