aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie Thielker2009-04-01 12:13:42 +0000
committerMelanie Thielker2009-04-01 12:13:42 +0000
commit76ca0963847d75d2d7233ad965c74e50a09d6dce (patch)
tree12412cb66c3974abb79096901825c7a2065c24e7 /OpenSim
parent* MRM Adjustments (diff)
downloadopensim-SC-76ca0963847d75d2d7233ad965c74e50a09d6dce.zip
opensim-SC-76ca0963847d75d2d7233ad965c74e50a09d6dce.tar.gz
opensim-SC-76ca0963847d75d2d7233ad965c74e50a09d6dce.tar.bz2
opensim-SC-76ca0963847d75d2d7233ad965c74e50a09d6dce.tar.xz
Add a PIDFile in [Startup], which the PID will be written to
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/Servers/BaseOpenSimServer.cs36
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs10
2 files changed, 45 insertions, 1 deletions
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index 8ede8f5..9794a10 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -73,6 +73,8 @@ namespace OpenSim.Framework.Servers
73 /// </summary> 73 /// </summary>
74 protected string m_version; 74 protected string m_version;
75 75
76 protected string m_pidFile = String.Empty;
77
76 protected BaseHttpServer m_httpServer; 78 protected BaseHttpServer m_httpServer;
77 public BaseHttpServer HttpServer 79 public BaseHttpServer HttpServer
78 { 80 {
@@ -278,6 +280,7 @@ namespace OpenSim.Framework.Servers
278 ShutdownSpecific(); 280 ShutdownSpecific();
279 281
280 m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting..."); 282 m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting...");
283 RemovePIDFile();
281 284
282 Environment.Exit(0); 285 Environment.Exit(0);
283 } 286 }
@@ -433,5 +436,38 @@ namespace OpenSim.Framework.Servers
433 436
434 m_version += string.IsNullOrEmpty(buildVersion) ? " " : ("." + buildVersion + " ").Substring(0, 6); 437 m_version += string.IsNullOrEmpty(buildVersion) ? " " : ("." + buildVersion + " ").Substring(0, 6);
435 } 438 }
439
440 protected void CreatePIDFile(string path)
441 {
442 try
443 {
444 string pidstring = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
445 FileStream fs = File.Create(path);
446 System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
447 Byte[] buf = enc.GetBytes(pidstring);
448 fs.Write(buf, 0, buf.Length);
449 fs.Close();
450 m_pidFile = path;
451 }
452 catch (Exception)
453 {
454 }
455 }
456
457
458 protected void RemovePIDFile()
459 {
460 if (m_pidFile != String.Empty)
461 {
462 try
463 {
464 File.Delete(m_pidFile);
465 m_pidFile = String.Empty;
466 }
467 catch (Exception)
468 {
469 }
470 }
471 }
436 } 472 }
437} 473}
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index ffabdd8..4cdb074 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -188,6 +188,14 @@ namespace OpenSim
188 /// </summary> 188 /// </summary>
189 protected override void StartupSpecific() 189 protected override void StartupSpecific()
190 { 190 {
191 IConfig startupConfig = m_config.Source.Configs["Startup"];
192 if (startupConfig != null)
193 {
194 string pidFile = startupConfig.GetString("PIDFile", String.Empty);
195 if (pidFile != String.Empty)
196 CreatePIDFile(pidFile);
197 }
198
191 base.StartupSpecific(); 199 base.StartupSpecific();
192 200
193 m_stats = StatsManager.StartCollectingSimExtraStats(); 201 m_stats = StatsManager.StartCollectingSimExtraStats();
@@ -857,4 +865,4 @@ namespace OpenSim
857 } 865 }
858 } 866 }
859 } 867 }
860} \ No newline at end of file 868}