Сегодня столкнулся с проблемой – запустил команду, время выполнения которой занимало больше суток, а ее работа прервалась после обрыва соединения. Обидно конечно, но не смертельно.
В мануалах по Linux нашел описание утилиты Screen, которая полностью решает мою проблему. Немного обидно, что раньше не знал про нее, но все бывает в первый раз. Учиться никогда не поздно.
Утилита Screen позволяет создавать при SSH соединении несколько экранов и переключаться между ними. Screen полностью решает проблему выполнения операций при разрывах соединения. Запустил команду в отдельном экране и можешь смело отключаться. Потом просто подключаешься и переходишь на нужный экран. Сессия при этом не теряется.
Пользоваться утилитой screen очень просто. Вводим в окне терминала команду screen и жмем Enter.
Если вылезет такое окно, то жмем пробел.
И еще разок на пробел.
Все – новый экран запущен.
Затем запускаем в созданном экране свою команду. Для примера введу htop.
Чтобы отключиться от экрана – жмем на клавиатуре Ctrl+A, а потом клавишу d.
После этого можно смело закрывать терминал. Ваша команда продолжит выполняться в отдельном экране.
Чтобы подключиться к нужному нам экрану, вводим команду screen -ls, которая выведет список всех запущенных экранов.
В моем случае их два:
root@raspberrypi:~# screen -ls
There are screens on:
4181.pts-0.raspberrypi (27.11.2013 11:53:14) (Detached)
3821.pts-0.raspberrypi (27.11.2013 11:03:55) (Detached)
2 Sockets in /var/run/screen/S-root.
Чтобы подключиться к нужному экрану, вводим команду:
screen -r 4181.pts-0.raspberrypi
(4181.pts-0.raspberrypi – название экрана, которое вывелось после команды screen –ls)
Жмем Enter.
Вуаля. Мы видим запущенный ранее процесс.
Для выхода из сеанса screen нажмите Ctrl+D.
Всем успехов в изучении Linux.
то что искал... спасибо огромное
Да, хорошая вещь!
Добавлю еще: можно сразу при создании экрана присвоить ему имя, потом легче его вызывать.
screen -S myname