Storing entire process state on disk and restoring it later? (On Linux/Unix)

Marco Aurélio picture Marco Aurélio · Apr 18, 2011 · Viewed 7.2k times · Source

I would like to know: Is there a system call, library, kernel module or command line tool I can use to store the complete state of a running program on the disk?

That is: I would like to completely dump the memory, page layout, stack, registers, threads and file descriptors a process is currently using to a file on the hard drive and be able to restore it later seamlessly, just like an emulator "savestate" or a Virtual Machine "snapshot".

I would also like, if possible, to have multiple "backup copies" of the program state, so I can revert to a previous execution point if the program dies for some reason.

Is this possible?

Answer

ergosys picture ergosys · Apr 18, 2011

Something like this? You can also check out the checkpointing page on wikipedia.