To resume from a checkpoint, do this:
{code}
-setarch x86_64 -L -B -R ./a.out -_condor_restart ckpt
+setarch x86_64 -L -B -R ./a.out -_condor_restart ckpt -_condor_relocatable
{endcode}
-This is the same command line as before, but -_condor_ckpt is now -_condor_restart.
+This is the same command line as before, but -_condor_ckpt is now -_condor_restart and -_condor_relocatable has been added.
{subsection: Checkpointing in Condor's vanilla universe}
1: Register a signal handler for SIGTSTP; it should send SIGTSTP to the running "real" job.
2: Register a signal handler for SIGUSR2; it should send SIGUSR2 to the running "real" job. (As of July, 2012, this will never be used, but we anticipate adding support for periodic checkpoints in the vanilla universe.)
-3: Is the checkpoint file ("my-real-job.ckpt") present? Then the arguments are "-_condor_restart my-real-job.ckpt". Otherwise the arguments are "-_condor_ckpt my-real-job.ckpt".
+3: Is the checkpoint file ("my-real-job.ckpt") present? Then the arguments are "-_condor_restart my-real-job.ckpt -_condor_relocatable". Otherwise the arguments are "-_condor_ckpt my-real-job.ckpt".
3: Start your "real" job
*:: Start under setarch to disable address randomization and similar that Condor checkpointing cannot cope with. The "-B" (limiting memory to 32 bit addresses) may not be necessary in all cases, but the specific circumstances are not known. The _<arguments>_ are as determined above.
*::: 32-bit: setarch i386 -L -B -R ./my-real-job _<arguments>_