diff --git a/rlgwebd b/rlgwebd index 4142d68..422d886 100755 --- a/rlgwebd +++ b/rlgwebd @@ -279,6 +279,10 @@ TermSession.prototype.destroy = function () { gamemux.emit('end', this.gname, this.pname); delete sessions[tag]; tslog("Game %s ended.", tag); + /* Was that the last game? */ + if (!allowlogin && Object.keys(sessions).length == 0) { + shutdown(); + } }; function DglSession(filename) { @@ -1168,13 +1172,15 @@ function consoleHandler(chunk) { sessions[tag].close(); } progressWatcher.stdin.end("\n"); - setTimeout(shutdown, 2000); + if (Object.keys(sessions).length == 0) + setTimeout(shutdown, 500); + /* Otherwise wait for the games to end */ } } process.on("exit", function () { for (var tag in sessions) { - sessions[tag].term.kill('SIGHUP'); + sessions[tag].term.kill('SIGTERM'); } tslog("Quitting..."); return;