mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 09:16:28 +08:00
From: Dr Scofield <hud@zurich.ibm.com>
* Fixes the admin_shutdown xmlrpc method * Adds a share/python/console/shutdown.py script for shutting down a background OpenSim * For more details see http://xyzzyxyzzy.net/2008/04/29/console-less-opensim/ * There should also be instructions in the opensimulator wiki soon as well
This commit is contained in:
@@ -218,9 +218,6 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
|
||||
Hashtable responseData = new Hashtable();
|
||||
|
||||
try {
|
||||
checkStringParameters(request, new string[] { "password", "shutdown" });
|
||||
checkIntegerParams(request, new string[] { "milliseconds"});
|
||||
|
||||
if (requiredPassword != String.Empty &&
|
||||
(!requestData.Contains("password") || (string) requestData["password"] != requiredPassword))
|
||||
throw new Exception("wrong password");
|
||||
@@ -228,28 +225,28 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
|
||||
responseData["accepted"] = "true";
|
||||
response.Value = responseData;
|
||||
|
||||
if ((string) requestData["shutdown"] == "delayed")
|
||||
int timeout = 2000;
|
||||
|
||||
if (requestData.ContainsKey("shutdown") &&
|
||||
((string) requestData["shutdown"] == "delayed") &&
|
||||
requestData.ContainsKey("milliseconds"))
|
||||
{
|
||||
int timeout = (Int32) requestData["milliseconds"];
|
||||
timeout = (Int32) requestData["milliseconds"];
|
||||
m_app.SceneManager.SendGeneralMessage("Region is going down in " + ((int) (timeout/1000)).ToString() +
|
||||
" second(s). Please save what you are doing and log out.");
|
||||
|
||||
// Perform shutdown
|
||||
Timer shutdownTimer = new Timer(timeout); // Wait before firing
|
||||
shutdownTimer.AutoReset = false;
|
||||
shutdownTimer.Elapsed += new ElapsedEventHandler(shutdownTimer_Elapsed);
|
||||
shutdownTimer.Start();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_app.SceneManager.SendGeneralMessage("Region is going down now.");
|
||||
|
||||
// Perform shutdown
|
||||
Timer shutdownTimer = new Timer(2000); // Wait 2 seconds before firing
|
||||
shutdownTimer.AutoReset = false;
|
||||
shutdownTimer.Elapsed += new ElapsedEventHandler(shutdownTimer_Elapsed);
|
||||
shutdownTimer.Start();
|
||||
}
|
||||
|
||||
// Perform shutdown
|
||||
Timer shutdownTimer = new Timer(timeout); // Wait before firing
|
||||
shutdownTimer.AutoReset = false;
|
||||
shutdownTimer.Elapsed += new ElapsedEventHandler(shutdownTimer_Elapsed);
|
||||
shutdownTimer.Start();
|
||||
|
||||
responseData["success"] = "true";
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
@@ -83,7 +83,6 @@ namespace OpenSim
|
||||
|
||||
if (background)
|
||||
{
|
||||
Console.WriteLine("background mode");
|
||||
OpenSimMain sim = new OpenSimMain(configSource);
|
||||
sim.StartUp();
|
||||
}
|
||||
|
||||
@@ -323,15 +323,19 @@ namespace OpenSim
|
||||
//
|
||||
// Called from app startup (OpenSim.Application)
|
||||
//
|
||||
|
||||
m_log.Info("[OPENSIM]: Starting Opensim");
|
||||
m_log.InfoFormat("[OPENSIM MAIN]: Running in {0} mode", (m_sandbox ? "sandbox" : "grid"));
|
||||
m_log.Info("====================================================================");
|
||||
m_log.Info("========================= STARTING OPENSIM =========================");
|
||||
m_log.Info("====================================================================");
|
||||
m_log.InfoFormat("[OPENSIM MAIN]: Running in background {0} mode", m_sandbox ? "sandbox" : "grid");
|
||||
|
||||
InternalStartUp();
|
||||
|
||||
// We are done with startup
|
||||
m_log.Info("[OPENSIM MAIN]: Startup complete, serving " + m_udpServers.Count.ToString() + " region(s)");
|
||||
m_log.InfoFormat("[OPENSIM MAIN]: Startup complete, serving {0} region{1}",
|
||||
m_udpServers.Count.ToString(), m_udpServers.Count > 1 ? "s" : "");
|
||||
WorldHasComeToAnEnd.WaitOne();
|
||||
m_log.Info("[OPENSIM MAIN]: Shutdown complete, goodbye.");
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -684,7 +688,7 @@ namespace OpenSim
|
||||
public virtual void Shutdown()
|
||||
{
|
||||
InternalShutdown();
|
||||
Environment.Exit(0);
|
||||
ApocalypseNow();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user