aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-11-22 05:14:08 +0000
committerJustin Clark-Casey (justincc)2012-11-22 05:14:43 +0000
commit8269d2b893af47ad44e66a7918d472086adaddbb (patch)
treeca9566b749a05f4ac0168fa2d058e30ba6ff71d3
parentAdd "get log level" command - this returns the current server session console... (diff)
downloadopensim-SC-8269d2b893af47ad44e66a7918d472086adaddbb.zip
opensim-SC-8269d2b893af47ad44e66a7918d472086adaddbb.tar.gz
opensim-SC-8269d2b893af47ad44e66a7918d472086adaddbb.tar.bz2
opensim-SC-8269d2b893af47ad44e66a7918d472086adaddbb.tar.xz
Factor out common pid file creation and removal code.
Log path at which pid file is created or reason for failure to create.
-rw-r--r--OpenSim/Framework/Servers/BaseOpenSimServer.cs36
-rw-r--r--OpenSim/Framework/Servers/ServerBase.cs51
-rw-r--r--OpenSim/Server/Base/ServicesServerBase.cs25
3 files changed, 50 insertions, 62 deletions
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index 8bdda29..89d3507 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -61,8 +61,6 @@ namespace OpenSim.Framework.Servers
61 /// server. 61 /// server.
62 /// </summary> 62 /// </summary>
63 private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000); 63 private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000);
64
65 protected string m_pidFile = String.Empty;
66 64
67 /// <summary> 65 /// <summary>
68 /// Random uuid for private data 66 /// Random uuid for private data
@@ -293,23 +291,6 @@ namespace OpenSim.Framework.Servers
293 MainConsole.Instance.OutputFormat("ERROR - Thread with id {0} not found in managed threads", threadId); 291 MainConsole.Instance.OutputFormat("ERROR - Thread with id {0} not found in managed threads", threadId);
294 } 292 }
295 293
296 protected void CreatePIDFile(string path)
297 {
298 try
299 {
300 string pidstring = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
301 FileStream fs = File.Create(path);
302
303 Byte[] buf = Encoding.ASCII.GetBytes(pidstring);
304 fs.Write(buf, 0, buf.Length);
305 fs.Close();
306 m_pidFile = path;
307 }
308 catch (Exception)
309 {
310 }
311 }
312
313 public string osSecret { 294 public string osSecret {
314 // Secret uuid for the simulator 295 // Secret uuid for the simulator
315 get { return m_osSecret; } 296 get { return m_osSecret; }
@@ -327,20 +308,5 @@ namespace OpenSim.Framework.Servers
327 return StatsManager.SimExtraStats.XReport((DateTime.Now - m_startuptime).ToString() , m_version); 308 return StatsManager.SimExtraStats.XReport((DateTime.Now - m_startuptime).ToString() , m_version);
328 } 309 }
329 } 310 }
330
331 protected void RemovePIDFile()
332 {
333 if (m_pidFile != String.Empty)
334 {
335 try
336 {
337 File.Delete(m_pidFile);
338 m_pidFile = String.Empty;
339 }
340 catch (Exception)
341 {
342 }
343 }
344 }
345 } 311 }
346} 312} \ No newline at end of file
diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs
index 9973a2d..645b43a 100644
--- a/OpenSim/Framework/Servers/ServerBase.cs
+++ b/OpenSim/Framework/Servers/ServerBase.cs
@@ -55,6 +55,8 @@ namespace OpenSim.Framework.Servers
55 protected DateTime m_startuptime; 55 protected DateTime m_startuptime;
56 protected string m_startupDirectory = Environment.CurrentDirectory; 56 protected string m_startupDirectory = Environment.CurrentDirectory;
57 57
58 protected string m_pidFile = String.Empty;
59
58 /// <summary> 60 /// <summary>
59 /// Server version information. Usually VersionInfo + information about git commit, operating system, etc. 61 /// Server version information. Usually VersionInfo + information about git commit, operating system, etc.
60 /// </summary> 62 /// </summary>
@@ -67,6 +69,45 @@ namespace OpenSim.Framework.Servers
67 EnhanceVersionInformation(); 69 EnhanceVersionInformation();
68 } 70 }
69 71
72 protected void CreatePIDFile(string path)
73 {
74 try
75 {
76 string pidstring = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
77
78 using (FileStream fs = File.Create(path))
79 {
80 Byte[] buf = Encoding.ASCII.GetBytes(pidstring);
81 fs.Write(buf, 0, buf.Length);
82 }
83
84 m_pidFile = path;
85
86 m_log.InfoFormat("[SERVER BASE]: Created pid file {0}", m_pidFile);
87 }
88 catch (Exception e)
89 {
90 m_log.Warn(string.Format("[SERVER BASE]: Could not create PID file at {0} ", path), e);
91 }
92 }
93
94 protected void RemovePIDFile()
95 {
96 if (m_pidFile != String.Empty)
97 {
98 try
99 {
100 File.Delete(m_pidFile);
101 }
102 catch (Exception e)
103 {
104 m_log.Error(string.Format("[SERVER BASE]: Error whilst removing {0} ", m_pidFile), e);
105 }
106
107 m_pidFile = String.Empty;
108 }
109 }
110
70 public void RegisterCommonAppenders(IConfig startupConfig) 111 public void RegisterCommonAppenders(IConfig startupConfig)
71 { 112 {
72 ILoggerRepository repository = LogManager.GetRepository(); 113 ILoggerRepository repository = LogManager.GetRepository();
@@ -109,7 +150,7 @@ namespace OpenSim.Framework.Servers
109 m_logFileAppender.ActivateOptions(); 150 m_logFileAppender.ActivateOptions();
110 } 151 }
111 152
112 m_log.InfoFormat("[LOGGING]: Logging started to file {0}", m_logFileAppender.File); 153 m_log.InfoFormat("[SERVER BASE]: Logging started to file {0}", m_logFileAppender.File);
113 } 154 }
114 } 155 }
115 156
@@ -243,26 +284,26 @@ namespace OpenSim.Framework.Servers
243 } 284 }
244 else if (File.Exists(gitRefPointerPath)) 285 else if (File.Exists(gitRefPointerPath))
245 { 286 {
246// m_log.DebugFormat("[OPENSIM]: Found {0}", gitRefPointerPath); 287// m_log.DebugFormat("[SERVER BASE]: Found {0}", gitRefPointerPath);
247 288
248 string rawPointer = ""; 289 string rawPointer = "";
249 290
250 using (StreamReader pointerFile = File.OpenText(gitRefPointerPath)) 291 using (StreamReader pointerFile = File.OpenText(gitRefPointerPath))
251 rawPointer = pointerFile.ReadLine(); 292 rawPointer = pointerFile.ReadLine();
252 293
253// m_log.DebugFormat("[OPENSIM]: rawPointer [{0}]", rawPointer); 294// m_log.DebugFormat("[SERVER BASE]: rawPointer [{0}]", rawPointer);
254 295
255 Match m = Regex.Match(rawPointer, "^ref: (.+)$"); 296 Match m = Regex.Match(rawPointer, "^ref: (.+)$");
256 297
257 if (m.Success) 298 if (m.Success)
258 { 299 {
259// m_log.DebugFormat("[OPENSIM]: Matched [{0}]", m.Groups[1].Value); 300// m_log.DebugFormat("[SERVER BASE]: Matched [{0}]", m.Groups[1].Value);
260 301
261 string gitRef = m.Groups[1].Value; 302 string gitRef = m.Groups[1].Value;
262 string gitRefPath = gitDir + gitRef; 303 string gitRefPath = gitDir + gitRef;
263 if (File.Exists(gitRefPath)) 304 if (File.Exists(gitRefPath))
264 { 305 {
265// m_log.DebugFormat("[OPENSIM]: Found gitRefPath [{0}]", gitRefPath); 306// m_log.DebugFormat("[SERVER BASE]: Found gitRefPath [{0}]", gitRefPath);
266 307
267 using (StreamReader refFile = File.OpenText(gitRefPath)) 308 using (StreamReader refFile = File.OpenText(gitRefPath))
268 { 309 {
diff --git a/OpenSim/Server/Base/ServicesServerBase.cs b/OpenSim/Server/Base/ServicesServerBase.cs
index 4eed7d5..ade4bab 100644
--- a/OpenSim/Server/Base/ServicesServerBase.cs
+++ b/OpenSim/Server/Base/ServicesServerBase.cs
@@ -69,10 +69,6 @@ namespace OpenSim.Server.Base
69 // 69 //
70 private bool m_Running = true; 70 private bool m_Running = true;
71 71
72 // PID file
73 //
74 private string m_pidFile = String.Empty;
75
76 // Handle all the automagical stuff 72 // Handle all the automagical stuff
77 // 73 //
78 public ServicesServerBase(string prompt, string[] args) : base() 74 public ServicesServerBase(string prompt, string[] args) : base()
@@ -240,8 +236,8 @@ namespace OpenSim.Server.Base
240 } 236 }
241 } 237 }
242 238
243 if (m_pidFile != String.Empty) 239 RemovePIDFile();
244 File.Delete(m_pidFile); 240
245 return 0; 241 return 0;
246 } 242 }
247 243
@@ -249,6 +245,7 @@ namespace OpenSim.Server.Base
249 { 245 {
250 m_Running = false; 246 m_Running = false;
251 m_log.Info("[CONSOLE] Quitting"); 247 m_log.Info("[CONSOLE] Quitting");
248
252 } 249 }
253 250
254 protected virtual void HandleScript(string module, string[] parms) 251 protected virtual void HandleScript(string module, string[] parms)
@@ -292,21 +289,5 @@ namespace OpenSim.Server.Base
292 protected virtual void Initialise() 289 protected virtual void Initialise()
293 { 290 {
294 } 291 }
295
296 protected void CreatePIDFile(string path)
297 {
298 try
299 {
300 string pidstring = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
301 FileStream fs = File.Create(path);
302 Byte[] buf = Encoding.ASCII.GetBytes(pidstring);
303 fs.Write(buf, 0, buf.Length);
304 fs.Close();
305 m_pidFile = path;
306 }
307 catch (Exception)
308 {
309 }
310 }
311 } 292 }
312} \ No newline at end of file 293} \ No newline at end of file