mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 01:06:30 +08:00
fix merge
This commit is contained in:
@@ -61,6 +61,9 @@ namespace OpenSim.Server.Base
|
||||
//
|
||||
private bool m_Running = true;
|
||||
|
||||
private static Mono.Unix.UnixSignal[] signals;
|
||||
|
||||
|
||||
// Handle all the automagical stuff
|
||||
//
|
||||
public ServicesServerBase(string prompt, string[] args) : base()
|
||||
@@ -183,6 +186,39 @@ namespace OpenSim.Server.Base
|
||||
RegisterCommonCommands();
|
||||
RegisterCommonComponents(Config);
|
||||
|
||||
Thread signal_thread = new Thread (delegate ()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
// Wait for a signal to be delivered
|
||||
int index = Mono.Unix.UnixSignal.WaitAny (signals, -1);
|
||||
|
||||
//Mono.Unix.Native.Signum signal = signals [index].Signum;
|
||||
ShutdownSpecific();
|
||||
m_Running = false;
|
||||
Environment.Exit(0);
|
||||
}
|
||||
});
|
||||
|
||||
if(!Util.IsWindows())
|
||||
{
|
||||
try
|
||||
{
|
||||
// linux mac os specifics
|
||||
signals = new Mono.Unix.UnixSignal[]
|
||||
{
|
||||
new Mono.Unix.UnixSignal(Mono.Unix.Native.Signum.SIGTERM)
|
||||
};
|
||||
signal_thread.Start();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.Info("Could not set up UNIX signal handlers. SIGTERM will not");
|
||||
m_log.InfoFormat("shut down gracefully: {0}", e.Message);
|
||||
m_log.Debug("Exception was: ", e);
|
||||
}
|
||||
}
|
||||
|
||||
// Allow derived classes to perform initialization that
|
||||
// needs to be done after the console has opened
|
||||
Initialise();
|
||||
|
||||
Reference in New Issue
Block a user