Thanks for the pointers, will have a look at how this works.
Had a bit of time today and threw together a quick external restart script in node that gets notified by the router via a dyndns call (the router can use an internal LAN IP for its dyndns calls - who knew). Node then checks the status of the game server over UDP and schedules to check again in a few minutes if there are players.
Otherwise just reboots the game server right away.
Been trying to figure out the UDP status protocol by looking at GameQ (
http://gameq.sourceforge.net), but some parts are missing there.
Hacking it together to identify bots and human players was ok, but if anyone has a (more) complete description of the UDP status protocol, please let me know.
Would love to put together a nice and small node lib for this.
Still need to add binding the game server threads to specific cores, but so far it seems to be working ok enough so that I don't have to do the reboot by hand anymore.
Seen a few people connect and play, so it seems to be working from outside now as well.
If someone encounters other problems, please feel free to give me a shout here on PM or email.
Will test a bit more during the week when I get time