On Fri, 13 Sep 1996, The Chuckster wrote:
> Has anyone modified their mud to allow warm reboots? Is this
> sort of thing OS dependent or what? I have worked on a mud
> that could do warm reboots (I was only an IMM so I could not see
> the code) and players would not even have to log off.
If your OS has the exec call, and all Unices do, you can do it.
For the code (for a MERC+ MUD, however) see:
ftp://pip.dknet.dk/pub/pip1773/copyover.v1 (or so)
I don't use Circle, and a brief look at the comm.c of Circle shows a lot
of differences...
The general ideas is however:
Find out who is on. Save name of each character plus descriptor they are
getting data from (the number of the file descriptor) into a file.
Save the number of control descriptor.
Call exec() on the binary file. This is much like starting the program up
again - BUT all the files that are open are still open, so that includes
the sockets too.
Now bring system back to hwo it was before - read in all the players and
log them into the game, at their respective sockets.
==============================================================================
Erwin Andreasen Viby J, Denmark Computer Science Student at Aarhus Business
4u2@aabc.dk <A HREF="http://pip.dknet.dk/~pip1773">Click here!</A> College
==============================================================================
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://cspo.queensu.ca/~fletcher/Circle/list_faq.html |
+-----------------------------------------------------------+