I think you're gonna need checkpoints. The reason SIGSTOP and SIGCONT work is that the process's state in memory is preserved; it simply stops executing until told to continue. Obviously, that is not going to work if you power-cycle your machine (unless you're willing to trust a month's work to hibernate always working correctly). It doesn't seem likely to me that there's a library somewhere that allows you to 'hibernate' a single process, since that opens one of the largest cans of worms imaginable. If your program is writing to some file, is frozen and written to disk, and when it's restored, the file is gone, you are going to need some hardcore error-handling code, and that's probably on the low end of the bad that could produce.
Honestly, though, it shouldn't be much trouble to have a Linux system up for a month - I'll assume there's some external factor that makes that impossible.
