parent
0834b097f6
commit
67e7d126f3
|
@ -1,6 +1,8 @@
|
|||
using System;
|
||||
using System.Threading;
|
||||
using System.ServiceProcess;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
|
||||
public class OpenGridMasterService : System.ServiceProcess.ServiceBase {
|
||||
|
||||
|
@ -21,11 +23,48 @@ public class OpenGridMasterService : System.ServiceProcess.ServiceBase {
|
|||
|
||||
protected override void OnStart(string[] args)
|
||||
{
|
||||
ServiceWorkerThread = new Thread(new ThreadStart(MainServiceThread));
|
||||
ServiceWorkerThread.Start();
|
||||
}
|
||||
|
||||
protected override void OnStop()
|
||||
{
|
||||
ServiceWorkerThread.Abort();
|
||||
}
|
||||
|
||||
private void MainServiceThread()
|
||||
{
|
||||
try {
|
||||
StreamReader reader=new StreamReader("opengrid-master-cfg.xml");
|
||||
|
||||
string configxml = reader.ReadToEnd();
|
||||
XmlDocument doc = new XmlDocument();
|
||||
doc.LoadXml(configxml);
|
||||
XmlNode rootnode = doc.FirstChild;
|
||||
if (rootnode.Name != "regions")
|
||||
{
|
||||
EventLog.WriteEntry("ERROR! bad XML in opengrid-master-cfg.xml - expected regions tag");
|
||||
Console.WriteLine("Sorry, could not startup the service - please check your opengrid-master-cfg.xml file: missing regions tag");
|
||||
(new ServiceController("OpenGridServices-master")).Stop();
|
||||
}
|
||||
|
||||
for(int i=0; i<=rootnode.ChildNodes.Count; i++)
|
||||
{
|
||||
if(rootnode.ChildNodes.Item(i).Name != "region") {
|
||||
EventLog.WriteEntry("nonfatal error - unexpected tag inside regions block of opengrid-master-cfg.xml");
|
||||
(new ServiceController("OpenGridServices-master")).Stop();
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
Console.WriteLine(e.ToString());
|
||||
(new ServiceController("OpenGridServices-master")).Stop();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void Main()
|
||||
{
|
||||
Console.WriteLine("Starting up OGS master service");
|
||||
ServiceBase.Run(new OpenGridMasterService());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue