Разработчики OpenBSD, объявили (http://undeadly.org/cgi?action=article&sid=20140904174329) о реализации в консольном оконном менеджере tmux (http://tmux.sourceforge.net/) ("terminal multiplexer") функции восстановления содержимого сеанса после перезагрузки операционной системы. Tmux разрабатывается в рамках проекта OpenBSD в качестве замены программы GNU Screen (http://www.gnu.org/software/screen/), распространяемой под лицензией BSD. Программа позволяет организовать многооконный интерфейс в консоли, через мультиплексирование одного физического терминала на несколько виртуальных терминалов.
В дополнение к штатной функции сохранения содержимого рабочего окружения между разными пользовательскими сеансами, для tmux подготовлен плагин tmux-resurrect (https://github.com/tmux-plugins/tmux-resurrect), позволяющий решить проблему с потерей запущенных программ, окон с рабочими директориями и расположением элементов на экране после перезапуска компьютера. Плагин tmux-resurrect обеспечивает сохранение слепка состояния окружения tmux для его восстановления после перезапуска системы. После восстановления окружение для пользователя выглядит неизменным, вплоть до того, что опционально предусмотрена возможность (https://github.com/tmux-plugins/tmux-resurrect#restoring-vim...) восстановления незавершённых сеансов редактора vim с сохранением позиций редактирования (за исключением редактора vim, состояние внешних программ не замораживается, они просто запускаются повторно с теми же аргументами).
<center>
<iframe src="//player.vimeo.com/video/104763018" width="700" height="393" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</center>Особенности tmux-resurrect:
- Сохранение всех сеансов, окон, панелей и порядка их размещения;
- Сохранение текущей рабочей директории для каждой панели;
- Сохранение раскладок элементов панели в окнах;
- Сохранение активных и альтернативных сеансов;
- Сохранение активных и альтернативных окон для каждого сеанса;
- Сохранение фокуса и активной панели в окне;
- Запуск программ, выполняемых в каждой панели;
- Опциональное сохранение сеансов vim.
URL: http://undeadly.org/cgi?action=article&sid=20140904174329
Новость: http://www.opennet.dev/opennews/art.shtml?num=40522
не все программы могут так нормально перезагрузиться. но всеже здорово.подскажете tmux аналог для screen -xR ?
Знаки препинания вам не знакомы?
Если я вас правильно понял - tmux attach
>не все программы могут так нормально перезагрузитьсяне только лишь все, но мало кто вообще может это делать...
tmux att || tmux
Годнота.
Шикарно. Супер. Побежал обновляться.
бесполезняк. состояние mc нормально не восстановит, а всё остальное или не нужно, или и без тмукса умеет себя поднимать.
А в чем пойнт вообще чтобы программы "как живые", но только дохлые? Внутреннее состояние процессов ведь не восстановится...Кстати идея: в пингвине можно попробовать чекпойнтить иногда процессы новомодным CRIU. А после ребута, натурально, восстановить в вид "как было". Со всеми потрохами! В идеале могло бы выглядеть как нечто типа живой миграции контейнеров, но только сам на себя, с кратковременной (на время ребута) приостановкой работы программ. Наверное мог бы быть годный способ обновлять ядро, etc "почти без перезагрузки" :).
> CRIUno x86 support → crap.
> x86 → crap.fixed
>> x86 → crap.
> fixedоно, конечно, да, но x86_64 → crap*2.
Зато дешево, надежно и практично.
Дешево - да, а остальное... Не думаю.
> а остальное... Не думаю.А что - остальное? Ну вот у меня AMDшный проц ECCшную оперативку гоняет. Кэши тоже с ECC. Так что +10 к надежности получаем. А также мамка с нормальным охлаждением чипсета, FET и полимерными кондерами - в обозримом будущем сдохнуть не должно бы.
А с точки зрения практичности - это как х86, только немного менее уе...щный (ряд фирменных даунизмов х86 таки устранили) и нормально адресующий актуальные нынче объемы памяти.
> no x86 support → crap.Я бы сказал что x86 - синоним crap. А х86_64 - таки немного менее гуанистый и уже немного больше похож на приличный процессор. Конечно тоже далек от идеала, но не такое кислотное у...ще как х86.
я уже говорил: мне восьмибайтовые указатели нафиг не упёрлись.
> Кстати идея: в пингвине можно попробовать чекпойнтить иногда процессы новомодным CRIU.
> А после ребута, натурально, восстановить в вид "как было".Можно. Но - TCP-соединения...
> Можно. Но - TCP-соединения...Что - TCP? Там вроде как раз было сохранение состояния TCP/IP стека. Единственное что при ребуте подшаманить что-то придется, чтобы ядро не отлупило "неожиданным" пакетам RST какой-нибудь. А потом ядро вспомнит что это не левые пакеты - и наступит зашибись. В идеале это для внешнего мира может выглядеть как пауза на несколько секунд (пока новое ядро через kexec взлетает, etc).
>> Можно. Но - TCP-соединения...
> Что - TCP? Там вроде как раз было сохранение состояния TCP/IP стека.Ты действительно хоть издалека видел CRIU, или так - поп^Hговорить пришёл?
я издалека видел. точно собирались восстановление состояния сетевого стека делать.
Никому не нужен ваш mc
Очень нужно. Иногда надо перезагрузиться, а куча открытых сессий tmux с различным разбиением окон долго восстанавливать. Запуск приложений не нужен совсем даже.
Точняк! Лиш бы нарезку окошек и имена сохранил. Ну максимум cd куда надо. А проги я уж сам :)
Как можно заставить tmux быстрее рефрешить "top" ?
Быстрее, чем 1 секунда?
top быстрее tmux работает, еще проблема с прокруткой вверх - ее нет
> Как можно заставить tmux быстрее рефрешить "top" ?s 0 <Enter>
хороший мультипликатор
это типа как Уолт Диснэй?
Ой, а это уже занятно, в некоторых случаях сэкономит по несколько секунд.
Скрин позволяет сделать отдельный конфиг, которым автоматически создаются окошки с нужными софтами в них. Более того, скрин позволяет запускать скрины внутри скрина. У меня одной командой запускается целый воркспейс, где в первом окне - четыре мониторящихся лога, в другом - два тцпдампа, в третьем - топ и вмстат, в четвертом - файлманагер, а в пятом - манагер процессов.
Фишка действительно полезная, только причём тут разработчики OpenBSD? Bruno Sutic - разработчик tmux-resurrect - никогда не был таковым.
Вот пример действительно полезного нововведения. Учись, Леннарт, учитесь, разработчики всяких терминалов на cairo.
> Вот пример действительно полезного нововведения. Учись, Леннарт, учитесь, разработчики
> всяких терминалов на cairo.В стиле Леннарта было бы забабахать чекпойнт процессов при шатдауне и рестор состояния процессов при старте системы в вид как было на момент шатдауна. Вот это было бы круто. ЧСХ, технически вроде даже реализуемо - ну, дернуть запись состояния процессов при шатдауне - CRIU так умеет. А рестор состояния высушенной оболочки трупика процесса вместо самого процесса - ну да, мегаинновация.