Add an option to exit an instance rather than restarting a region within it

mysql-performance
Melanie 2009-12-14 00:31:15 +00:00
parent 0639e90f56
commit c426549f53
2 changed files with 21 additions and 2 deletions

View File

@ -902,7 +902,7 @@ namespace OpenSim.Region.Framework.Scenes
m_log.Info("[REGION]: Restarting Region in " + (seconds / 60) + " minutes");
m_restartTimer.Start();
m_dialogModule.SendNotificationToUsersInRegion(
UUID.Random(), String.Empty, RegionInfo.RegionName + ": Restarting in 2 Minutes");
UUID.Random(), String.Empty, RegionInfo.RegionName + String.Format(": Restarting in {0} Minutes", (int)(seconds / 60.0)));
}
}
@ -932,6 +932,16 @@ namespace OpenSim.Region.Framework.Scenes
// This causes the region to restart immediatley.
public void RestartNow()
{
IConfig startupConfig = m_config.Configs["Startup"];
if (startupConfig != null)
{
if (startupConfig.GetBoolean("InworldRestartShutsDown", false))
{
MainConsole.Instance.RunCommand("shutdown");
return;
}
}
if (PhysicsScene != null)
{
PhysicsScene.Dispose();
@ -939,6 +949,7 @@ namespace OpenSim.Region.Framework.Scenes
m_log.Error("[REGION]: Closing");
Close();
m_log.Error("[REGION]: Firing Region Restart Message");
base.Restart(0);
}

View File

@ -109,6 +109,14 @@
; Warning! Don't use this with regions that have existing content!, This will likely break them
CombineContiguousRegions = false
; If you have only one region in an instance, or to avoid the many bugs
; that you can trigger in modules by restarting a region, set this to
; true to make the entire instance exit instead of restarting the region.
; This is meant to be used on systems where some external system like
; Monit will restart any instance that exits, thereby making the shutdown
; into a restart.
;InworldRestartShutsDown = false
; ##
; ## STORAGE
; ##