Hello,
aoforce does a restart by default. There are a couple of checkpoints where the restart data is saved to disk, and the last complete checkpoint is used automatically. There should be a keyword $restart force in the control file, and if a new start of aoforce find this keyword, it will read in all available intermediate results.
If the calculation takes very long, check if the amount of memory ($maxcor) is sufficient. In the output of aoforce, there is a section:
Blocking parameters
shells:
index start shell last shell start bf last bf #bf
1 1 90 1 252 252
etc.
If there is more than one line, aoforce cannot use a sufficient amount of memory to do the whole job in one sweep, and it divides the tasks into individual blocks. The more blocks (lines) you have, the longer the job will take - but it will finish sooner or later and not stop due to insufficient memory.
The hopefully good news is that for large systems the generation of dS, g_sxi_a, etc. is the most time consuming step and the subsequent CPKS iterations will not take as much time.
Good luck!