История изменений
Исправление SZT, (текущая версия) :
Там человек верно подметил про идею корутинов и сохранения состояния программы.
Не, ну, можно тупо клонировать процесс в замороженном состоянии
В мане на системный вызов clone сказано:
CLONE_STOPPED (since Linux 2.6.0-test2)
If CLONE_STOPPED is set, then the child is initially stopped (as though it was sent a SIGSTOP signal), and must be resumed by sending it a SIGCONT signal.
Вот так можно наклонировать кучу процессов, и потом в случае чего откатываться к старому процессу, будя его сигналом SIGCONT
Сохранять полностью состояние программы не выйдет, потому как есть (могут быть) еще файлы, открытые программой, которые могут меняться другими программами, и могут быть какие-нибудь семафоры и shared memory , и как все это откатить? Виртуалкой только, ИМХО.
Еще есть: https://www.criu.org/Main_Page и https://github.com/google/snappy-start
Исправление SZT, :
Там человек верно подметил про идею корутинов и сохранения состояния программы.
Не, ну, можно тупо клонировать процесс в замороженном состоянии
В мане на системный вызов clone сказано:
CLONE_STOPPED (since Linux 2.6.0-test2)
If CLONE_STOPPED is set, then the child is initially stopped (as though it was sent a SIGSTOP signal), and must be resumed by sending it a SIGCONT signal.
Вот так можно наклонировать кучу процессов, и потом в случае чего откатываться к старому процессу, будя его сигналом SIGCONT
Сохранять полностью состояние программы не выйдет, потому как есть (могут быть) еще файлы, открытые программой, которые могут меняться другими программами, и могут быть какие-нибудь мьютексы и shared memory какие-нибудь, и как все это откатить? Виртуалкой только, ИМХО.
Еще есть: https://www.criu.org/Main_Page и https://github.com/google/snappy-start
Исходная версия SZT, :
Там человек верно подметил про идею корутинов и сохранения состояния программы.
Не, ну, можно тупо клонировать процесс в замороженном состоянии
В мане на системный вызов clone сказано:
CLONE_STOPPED (since Linux 2.6.0-test2)
If CLONE_STOPPED is set, then the child is initially stopped (as though it was sent a SIGSTOP signal), and must be resumed by sending it a SIGCONT signal.
Вот так можно наклонировать кучу процессов, и потом в случае чего откатываться к старому процессу, будя его сигналом SIGCONT
Сохранять полностью состояние программы не выйдет, потому как есть (могут быть) еще файлы, открытые программой, которые могут меняться другими программами, и как все это откатить? Виртуалкой только, ИМХО.
Еще есть: https://www.criu.org/Main_Page и https://github.com/google/snappy-start