A melhor / mais simples solução é mudar seu programa para salvar o estado em um arquivo e reutilizá-lo para restaurar o processo.
Com base na página da Wikipédia sobre snapshots do aplicativo , existem várias alternativas:
- Há também cryopid , mas parece não ser mantido.
-
ponto de verificação / reinicialização do Linux parece ser uma boa escolha, mas seu kernel precisa ter
CONFIG_CHECKPOINT_RESTORE
ativado. - o criu é provavelmente o projeto mais atualizado e provavelmente o seu melhor, mas depende também de algumas especificidades Kernel options que sua distribuição provavelmente não definiu.
Isso já é tarde demais, mas outra abordagem mais prática é iniciar seu processo em uma VM dedicada e apenas suspender e restaurar toda a máquina virtual. Dependendo do seu hypervisor, você também pode mover a máquina entre hosts diferentes.
Para o futuro, pense em onde você executa seus processos de longa duração, como paralizá-los e como lidar com problemas, por exemplo, discos completos, o processo é morto etc.