[Entware] Screen, Tmux, Dtach - оконные менеджеры, "многозадачность", запуск задачи в фоне

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1116
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 09 июн 2016, 11:53

Многие из нас привыкли к куче открытых окон на экране. В одном окне выполняется одна задача, в другом - другая. В этой теме обсудим, как запускать много задач на роутере. Как после запуска задачи отключиться от ssh сессии, а потом вернуться назад и посмотреть на результат. Например запустить копирование большого объема данных (например по сети), отключиться от роутера (или NAS) и через несколько часов проверить результат. Мы рассмотрим три утилиты, которые помогут нам это осуществить.
Screen
В интернете много инструкций по screen. Не имеет смысл их пересказывать. Просто приведу простой пример.
1. Установим screen

Код: Выделить всё

opkg install sceeen

2. Запустим screen

3. Запустим mc, подключимся к ftp серверу, начнем копировать.
4.Перведем задание в фон. Нажмем `Ctrl a d`

Код: Выделить всё

[detached from 13686.pts-0.Extra]

5. Можно выйти из ssh сессии, потом подключиться еще раз и набрать

Код: Выделить всё

screen -r

Мы увидим окно mc и поймем завершилось ли копирование. Если завершилось, завершим mc и потом и сеанс screen командой `exit`

Код: Выделить всё

[screen is terminating]
~ #

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1116
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 09 июн 2016, 11:54

Tmux
Не будем обсуждать, что лучше screen или tmux. Те же операции, что и выше можно сделать с помощью tmux.
Разница в следующем
1. Установка `opkg install tmux`
2. Запуск `tmux`
4. Отключение `Ctrl b d`
5. Повторное подключение `tmux attach`

Кратка шпаргалка по tmux - https://habrahabr.ru/post/126996/

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1116
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 09 июн 2016, 11:54

Dtach
Предыдущие операции можно сделать и с помощью утилиты dtach
1. Установка `opkg install dtach`
2. Запуск

Код: Выделить всё

dtach -c $HOME/ftpcopy mc

Тут мы создали сокет $HOME/ftpcopy, его будем использовать потом для подключения назад. Можем сразу указать, что запустить в сеансе (mc).
4. Отключение `ctrl \`
5. Подключение

Код: Выделить всё

dtach -a $HOME/ftpcopy

Используем socket из п. 2.

Аватара пользователя
Александр Рыжов
Сообщения: 282
Зарегистрирован: 12 авг 2015, 13:14
Откуда: Смоленск

Сообщение Александр Рыжов » 10 июн 2016, 12:22

Небольшое дополнение.

1. Самый православный вариант, поддерживающий море кодировок и типов терминалов — screen. Скажем, мне он на UTF-8 системе позволял использовать KOI-8 приложение golded для чтения FIDO-почты на роутере (хранящего почтовые базы в CP866:)).
2. Киллер-фича tmux — разделение окна терминала на несколько независимых секций, пример с роутера — здесь.
3. dtach — очень легковесный. Он не рендерит свёрнутую термнальную сессию честно, не умеет показывать scroll-back и даже не умеет делать перенаправления. Так что если в вашем скрипте есть пайпы (echo ... | grep ...), то такой скрипт под dtach не заработает.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 2 посетителя :: 1 зарегистрированный, 0 скрытых и 1 гость (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: Yandex [Bot] и 1 гость