[eside-ghost] Guardar el estado de un proceso a disco?

Santi Saez santi en hostalia.com
Mar Mar 27 00:28:15 CEST 2007


El 26/03/2007, a las 23:46, Juanval escribió:

> Yeeepa,
>
> Ando con un proceso que me gustaría poder guardar su estado a disco en
> momentos concretos, y poder restaurarlo luego y seguir la ejecución
> donde estaba. Un kill -s STOP no me vale porque necesito apagar ese
> ordenador de vez en cuando, y perdería el proceso en cuestión. Y
> tampoco puedo modificar el código fuente para hacerlo por código,
> porque es closed source :-S
>
> Se me ha ocurrido que quizás se pueda hacer una especie de core dump y
> luego volver a restaurarlo como un proceso del sistema... aunque eso
> provocaría bastantes problemas con cosas como pipes, sockets, archivos
> abiertos, dispositivos reservados para ese proceso... etc. Aún asi,
> quizás alguien haya conseguido hacer algo asi... nu se

Una solución sencilla sería utilizar algo tipo OpenVZ [1] que desde  
hace tiempo incorpora el "process checkpoint" [2].

Si no te sirve estar bajo un entorno virtual, en el segundo enlace  
encontrarás algunas ideas que junto al enlace de Borja te servirán  
como base.

Una vez instalado y con la VM en marcha, sería tan sencillo como:

vzctl chkpnt veid [--dumpfile name]
     This command saves a complete state of a running VE to a dump  
file, and stops the VE. If an option --dumpfile is not set, default  
dump file name /vz/dump/Dump.veid is used.

Saludos,

[1] http://openvz.org/
[2] http://wiki.openvz.org/Checkpointing_internals

--
Santi Saez





Más información sobre la lista de distribución eside-ghost