- run 'ps -aux | grep DreamDaemon' and get the process id.
- do a 'kill -15 ' and wait for the server to complete halt
- if that does not work (haven't had to do this in a really long time), do a 'kill -9 ' to forcefully kill the server (yes, that would definetly kill some savefiles if there were being written to during that time....but this step hasn't been necessary in several months now)
- Finally, restart the server as normal by 'DreamDaemon dwonline.dmb 2047'
I generally wait about 5-10 seconds between steps 3 and 4.
When I run step 2, everyone is automatically logged out of the game and everything is saved.
IF a savefile gets corrupted, I generally get a [ckeyname]_lost.txt file that contains what looks like what was a failed attempt of recovering the data. Here is the contents of the text file from our latest corrupted savefile:
//Orphan savefile buffer '' found on Fri Sep 20 22:37:09 2002
= null
//End of exported data.
//Orphan savefile buffer '' found on Fri Sep 20 22:37:09 2002
= null
//End of exported data.
//Orphan savefile buffer '' found on Fri Sep 20 22:37:09 2002
= null
//End of exported data.
//Orphan savefile buffer '' found on Fri Sep 20 22:37:09 2002
= null
//End of exported data.
Any ideas on what might be causing this? I am using BYOND for Linux version 330 on a RedHat 7.2 system.
Here's something to try while I'm looking into the rest of the problem: you can tell DreamDaemon to restart (and reload the .dmb) without killing it. Just send it a SIGUSR1 (kill -10). Maybe that doesn't fit in with the type of maintainance that you need to do, though, so just try it if it makes sense. It should behave the same as SIGTERM, except users are automatically reconnected when the game reboots.
I will also compile the latest version for Linux today.
--Dan