Доступен выпуск инструментария CRIU 3.15 (Checkpoint and Restore In Userspace), предназначенного для сохранения и восстановления процессов в пространстве пользователя. Инструментарий позволяет сохранить состояние одного или группы процессов, а затем возобновить работу с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений. Код проекта распространяется под лицензией GPLv2...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=54025
Иксовые приложения там возобновлять ещё не научили? А так очень годная штука, пользуемся.
У меня в блендере рендеринг 3d, я как понимаю могу взять и заморозить рендеринг и потом его восстановить?
Они говорили, что иксы им не интересно. :/ Было бы здорово, но с любым консольным софтом вплне прекрасно работает. Если у тебя там рендер в отдельном процессе запущен, его можно сохранить на диск и потом продолжить.
Руками останови все нужные процессы по айдишникам kill -STOP $PID;
Задампь оперу через gdb;
На другой машине запусти те же приложение останови и через тот же gdb залей в оперу данные из файлов-дампов;
kill -CONT $PID запусти обратно процессы;Вот тебе и весь CRIU. Если у тебя действительно это получится напиши где-нибудь как это сделал)
Только ещё есть открытые файлы (в том числе пайпы с заполненными буферами), настройки терминалов, pid/tid, сетевые сокеты (их буферы и connection state machine), shared memory и прочие ресурсы, которые процесс запрашивает у ядра, и таймеры/таймауты для всего этого. gdb же восстановит только состояние регистров и памяти, причём только той памяти, которая прошла через coredump_filter.
Еще хорошо бы запустить новые процессы/потоки с теми же пидами, ибо старые иды могут быть сохранены (и использованы) где-то в ОЗУ. Представь, что один поток у тебя _уже_делает_ `int pid=12345; waitpid(pid)`
С рендерингом проблема будет с состоянием графической карты, если ты знаешь, как его сохранить, то всё будет огонь.
Незачем, если рендерит на CPU.
Даже страшно представить среду или игру, которая не выносит рендеринг в GPU...
А чем это отличается от crash dumpов? Воссозданием объектов ядра? Заменит ли это crash dumpы?
> Заменит ли это crash dumpы?смотря как вы используете краш дампы.
Возможно теперь в Proxmox LXC контейнеры получат live миграцию.
На сколько я понимаю - это можно сделать уже
https://criu.org/LXCКто успел попробовать, работает ?
Если процесс остановлен - это не лив миграция
GRU