Раньше я поддерживал CryoPID , программу, которая делает именно то, о чем вы говорите. Он записывает содержимое адресного пространства программы, VDSO, ссылки на файловые дескрипторы и состояния в файл, который впоследствии может быть восстановлен. CryoPID запускался, когда в самом Linux не было используемых хуков, и работал полностью из пользовательского пространства (фактически, он все еще работает, в зависимости от настроек вашего дистрибутива / ядра / безопасности).
Проблемы были (действительно) сокетами, ожидающими сигналами RT, многочисленными проблемами X11, реализацией getpid () кэширования glibc и многими другими. Рандомизация (особенно VDSO) оказалась непреодолимой для тех немногих из нас, кто работал над ней после того, как Бернард ушел от нее. Однако это было весело и стало темой нескольких магистерских диссертаций.
Если вы просто рассматриваете программу, которая может сохранить свое рабочее состояние и перезапустить прямо в это состояние, гораздо ... намного ... проще просто сохранить эту информацию из самой программы, возможно, при обслуживании сигнала.