Wiki
Clone wikicomp-house.repo / screen-terminal-unlimited
screen - терминал без перерыва.
Необходимо поставить программу на длительное выполнение, но если при этом случайно закрыть терминал, в котором она запущена, то программа завершится, чего допускать не хотелось бы.
Соединяюсь с сервером по SSH. Связь иногда прерывается. Как сделать так, чтобы на сервере все продолжало работать как ни в чем не бывало?
Решение
Запустить сессию screen и работатьв в ней.
Screen, это утилита, которая создает виртуальные консоли и позволяет пользователю по мере необходимости к ним подключаться.
Чтобы стартовать виртуальную консоль, достаточно набрать:
$screen
В рамках одной сессии screen можно создать несколько консолейкомбинацией ctrl-a-c
Переключиться между консолями в рамках одной сессии screen можно комбинациями ctrl-a-p (пред. консоль) ctrl-a-n (след. консоль)
Выход и завершение консоли, как обычно, командой exit.
Если во время работы произошел обрыв связи или терминал был закрыт, то восстановив связь или зайдя заново в терминал, можно посмотреть список имен свободных сессий:
$ screen -ls There is a screen on: 5345.pts-1.vaio (Detached) 1 Socket in /var/run/screen/S-avl.
и подключиться к нужной сессии:
$screen -r 5345.pts-1.vaio
где 5345.pts-1.vaio это имя сессии, подсмотренное в выводе предыдущей команды (5345.pts-1.vaio (Detached)) .
При этом программы, которые были запущены в сессии, вообще ничего не заметят, а пользователь увидит текущее содержимое экрана, как будто он и не отключался.
Updated